0

テーブル内の列の値を更新したい。$q をエコーすると、変数は取得されますが、更新されず、mysql エラーがエコーされません。では、どうすればよいのでしょうか。

 function up($name, $value, $id){     

 $q='UPDATE Table SET '.$name.'='.$value.' WHERE ID="'.$id.'"';
     $r=mysql_query($q, $conn);
     if(!$r){
     echo('Could not update data: ' . mysql_error());
   } else{ echo "Updated data successfully\n"; } 
 }
4

1 に答える 1

1

変数$qは MySQL に送信される前に解釈されるため、列名やその他すべてを実行時に動的にすることができます。その文字列の最終的な値は、MySQL が見るものです。

行が更新されておらず、エラーが発生していない場合は、クエリが何らかの形で間違っています。WHERE 句のすべての条件が正しいことを確認してください。行が影響を受けたかどうかを確認するより良い方法は、を使用することmysql_affected_rows()です。

else{ echo "Updated data successfully\n"; } 

する必要があります

else if(mysql_affected_rows() !== 0){ echo "Updated data successfully\n"; } 

参考までに、mysql_* 関数は間もなく廃止されるため、これらの関数からの移行を検討する必要があります。

于 2012-06-13T15:06:36.357 に答える