我正在运行一个带有此行的php函数:
mysql_query("UPDATE `user-table` SET `$field` = '$value' WHERE `user_id` = $user_id");
由于某种原因,这不起作用。我已经回显了$user_id
变量,取整数并将其放在查询中的变量位置,所以它看起来像这样:
mysql_query("UPDATE `user-table` SET `$field` = '$value' WHERE `user_id` = 11");
它更新了!所以问题必须与变量有关,但我无法弄清楚是什么。
有什么想法吗?
答案 0 :(得分:0)
它可能取决于php.ini中的设置。我不记得环境变量的名称,但是如果你像这样构建字符串:
mysql_query("UPDATE `user-table` SET `$field` = '".$value."' WHERE `user_id` = ".$user_id.";");
无论你的php.ini设置如何,它都应该有效,假设你已经转义了$ value,并且确定你的$ user_id是一个整数。
答案 1 :(得分:0)
如果您同时分配字段(列)名称&变量 $ name &的值 $ value 就像那样;
所以,把它们放在一起,以下应该可以正常工作:
mysql_query("
UPDATE user-table
SET $field = '" . mysql_real_escape_string($value) . "'
WHERE user_id = (int)$user_id
");
希望它有所帮助!
盖孜
答案 2 :(得分:0)
我不小心传递了一个未定义的变量,认为它是一个整数。
答案 3 :(得分:-1)
如果我没记错的话,你应该将变量包装到{}
中,因为在你的例子中你实际上是将$user_id
作为字符串推送。
mysql_query("UPDATE `user-table` SET `$field` = '$value' WHERE `user_id` = {$user_id}");
答案 4 :(得分:-1)
变量$ user_id必须在''内。试试这个:'user_id'='$ user_id'。