PHP 变量中的 SQL 动态列名


SQL dynamic column name from PHP variable?

 $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()

您的 SQL 语句不正确:

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

格式为:

UPDATE table SET column = ? WHERE [conditional];

您在tableperson之间有一个点,我不知道为什么您一次只能更新一个表格时,您有两个表彼此相邻,所以这是另一个错误。

如果这不能解决问题,请执行以下操作:

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

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

让我知道这是否为您解决了问题!