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 回答