Grazie ad entrambi per l'aiuto

Ho provato con

Codice PHP:
committente='".mysql_real_escape_string($_POST['committente'])."' 
e ottengo lo stesso problema che ottenevo con

Codice PHP:
committente=addslashes($_POST[committente]); 
riesco a scrivere sul DB (pur ottenendo l'errore "NULL") se richiamo tutto il DB su un form tabellare, va ancora bene, riesco a leggere la stringa con l'apostrofo:

Codice PHP:
....
echo 
"<td ><a href='dettagli_progetto.php?codp=".$row['codice_progetto']."&annor=".$row['anno_rif']."&commit=".$row['committente']."&dinc=".$row['data_incarico']."&dcons=".$row['data_consegna']."&dettp=".$row['dettaglio_progetto']."'>"$row['codice_progetto'] . "</td>";
echo 
"<td style='width:150px;  padding:0; margin:0; text-align:left;'><div style='width:170px; height:50px; overflow-x:hidden; overflow-y:auto;'>"$row['committente'] . "</td>";
echo 
"<td>" data_it($row['data_incarico']) . "</td>";
... 
Come vedete il primo campo del mio DB è un link, cliccandoci, tutti i campi della tabella vengono riportati su un nuovo form per la modifica attraverso l'istruzione

Codice PHP:
...
<div><label>Committente</label> <input type="text" size="52" name="committente" value="<?php echo $_GET['commit']; ?>"></div>
...
e in questo modo riesco a popolare tutti i campi fino a quello che contiene la stringa con l'apostrofo, quest'ultimo campo fino alla lettera che precede l'apostrofo, proprio come se lo interpretasse come carattere di fine stringa.