在PDO语句中动态更改列名称

Chu*_*utt 4 php mysql pdo prepared-statement

是否可以在准备好的MySQL语句中将列名作为参数传递?请看以下示例:

UPDATE Images
SET :placement = :imageURL
WHERE ID = :titleID;
Run Code Online (Sandbox Code Playgroud)

PDO '在每个参数附近添加,因此上面的中间行变为:

SET 'Homepage' = '1.jpg'
Run Code Online (Sandbox Code Playgroud)

哪个MySQL不喜欢.有没有办法在PDO语句中包含字段名的参数并让它们被接受?

否则我想我将不得不写几个不同的PDO语句,具体取决于所选择的内容(?).

Phi*_*oss 8

你需要做这样的事情:

$column = 'someColumn';

$stmt = $db->prepare("UPDATE tableName SET {$column} = :columnValue WHERE ID = :recordId");
Run Code Online (Sandbox Code Playgroud)

参数化占位符仅用于值.

我建议你阅读你的问题上发表的评论@YourCommonSense.