我想更新表中的任何列值。如果我回显$ 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"; }
}
答案 0 :(得分: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"; }
仅供参考,您应该考虑从they will soon be going away.
迁移出mysql_ *函数