繁体   English   中英

SQL查询不读取变量

[英]SQL Query Not Reading Variables

我在下面的查询使用变量来更新记录以标识数据库中的数据。 我认为我的语法是正确的,尽管可能是错误的。 另外,我绝对确定变量中包含合法值。 为什么此查询不起作用?

UPDATE  `databasename`.`".$tablename."` SET  `stock` =  '".$f."' WHERE  `myerspark`.`item_id` ='".$g."' LIMIT 1

多谢你们。 汤姆,是的,我已经尝试过了,效果很好。 但这令人沮丧,因为我在脚本末尾回显了所有三个变量,并且它们都显示合法值。

Hamish,我如何查看这些错误?

Jon_Darkstar,这些变量在前面的代码行中分配。 这是我的整个代码块:

//variables $f, $g, and $tablename assigned from POST variables in previous lines
mysql_select_db($database_Yoforia, $Yoforia);
mysql_query("UPDATE `yoforiainventory`.`".$tablename."` SET `stock` =  '".$f."' WHERE `".$tablename."`.`item_id` ='".$g."' LIMIT 1 ");
mysql_close($Yoforia);

echo ($f);
echo ($tablename);
echo ($g);

同样,当我回显这些变量时,它们都具有良好的价值。

我对属于SQL的内容,属于PHP的内容,字符串的来源等感到困惑。您所拥有的可能很好(如果在前端和后端有双引号,而我看不到。

我可能会这样写:

$sql = "UPDATE databasename.$tablename SET stock = '$f' WHERE myerspark.item_id = '$g' LIMIT 1"
$res = mysql_query($sql, $conn).....

您可以反选更多的东西(和/或执行mysql_real_escape)以提高“额外安全性”;但这涵盖了这个想法。

什么是myerspark? 我不知道它与查询的关系如何,这可能是您真正有意义的错误,无论是否存在语法错误。 如果myerspark是与表名分开的表,那么您在这里遇到了问题,也许您应该拥有一个JOIN?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM