2012-07-18 7 views
0

ne pouvez pas faire ce travail de recherchene peut pas faire le travail mysql_query

if (isset($_GET['id'])){ 
    $id = $_GET['id']; 

    if(isset($_POST['submit'])) { 

    $id = (int)$id; 
    $caption = mysql_real_escape_string($_POST['caption']); 

    mysql_query(" UPDATE `photo_gallery`.`photograph` SET `caption` ='{$caption}' WHERE `photograph`.`id` ='{$id}' "); 

mais quand je change manuellement à cela, il fonctionne

mysql_query("UPDATE `photo_gallery`.`photograph` SET `caption` = 'bruv' WHERE `photograph`.`id` =3"); 
+0

Mettre cela dans votre code '$ sql = "Mettre à Jour photo_gallery.photograph SET caption = {$ caption} 'OÙ photograph.id =' {$ id}"' puis un 'echo $ sql 'et dites-moi ce que vous voyez. – Fluffeh

+1

renvoie la chaîne évaluée et recherche le problème. – Ali

+0

essayer de vérifier le résultat: 'if (! Mysql_query ('votre requête')) echo mysql_errno(). ':' .mysql_error();' –

Répondre

0

Vous avez des guillemets simples autour de {$ id} . Si vos identifiants sont des indices dans la base de données, alors il ne devrait pas être cité.

0

Y at-il une raison pour les accolades dans votre commande SQL? essayez ceci:

mysql_query(" UPDATE `photo_gallery`.`photograph` SET `caption` ='$caption' WHERE `photograph`.`id` ='$id' "); 
0

Essayez ceci:

mysql_query(" UPDATE `photo_gallery`.`photograph` SET `caption` ='".$caption."' WHERE `photograph`.`id` = '".$id."' "); 

Utilisez également intval pour analyser int instread.

0

le problème peut provenir de mysql_real_escape_string. Dans la nouvelle version, l'échappement est fait par mysql et non plus par php alors ... pour moi cela a fonctionné comme ça.

$caption = $_POST['caption']; 

mysql_query(" UPDATE `photo_gallery`.`photograph` SET `caption` ='".mysql_real_escape_string($caption)."' WHERE `photograph`.`id` ='".$id."' "); 
Questions connexes