我无法使用bindValue将我的值绑定到sql查询。
$sql = "INSERT INTO :table(:columns) VALUES(:values)";
$query = $conn->prepare($sql);
$query->bindValue(':table',$table);
$query->bindValue(':columns',$columns);
$query->bindValue(':values',$values);
$query->execute();
当我运行它时,$ query-> execute()返回“false”,并且数据不会更新到DB。我也试过了:
$sql = "INSERT INTO :table(:columns) VALUES(:values)";
$query = $conn->prepare($sql);
$query->execute(array('table'=>$table,':columns'=>$columns,':values'=>$values));
它仍然不起作用。
这可行,但不是我想做的事情:
$sql = "INSERT INTO $table($columns) VALUES($values)";
$result = $conn->query($sql);
请告诉我我做错了什么。感谢。
答案 0 :(得分:2)
您使用不正确,您无法通过bindParam
动态分配结构SQL值等,因为它适用于插入/更新/测试的列值。
<强>更新强>
如果您向我们提供了$columns
和$variables
(如评论中的牧师的评论),内容通常是/来自哪里,我/我们可以帮助您解决你的困境。