PHP变量的SQL动态列名?

时间:2016-04-22 18:04:46

标签: php sql

 $db_col=$_POST['db_col']; //string
 $db_val=$_POST['db_val']; //string
 $name=$_POST['name']; //string

// connect to db

$query="UPDATE `table`.`person` SET `$db_col` = ? WHERE CONCAT(first, ' ', last) = ?;";
$stmt = $web_dbi->prepare($query);
$stmt->bind_param("ss", $db_val, $name);
$stmt->execute();

获取错误:

  

在非对象

上调用成员函数bind_param()

1 个答案:

答案 0 :(得分:1)

您的SQL语句不正确:

$query="UPDATE `table`.`person` SET `$db_col` = ? WHERE CONCAT(first, ' ', last) = ?;";

格式为:

UPDATE table SET column = ? WHERE [conditional];

tableperson之间有一个点,我不知道为什么你只能一个一个地更新一个表而另一个是另一个表,这是另一个错误。

如果这还没有解决问题,请执行以下操作:

echo "query is: ".$query."<br>";

在您编写查询之后,将输出粘贴到此处,这样我们就可以确切地看到数据库看到的内容以及错误所在的位置:)

如果能为您解决问题,请告诉我们!