gpt4 book ai didi

php - 更新 SQL 列

转载 作者:搜寻专家 更新时间:2023-10-30 22:01:09 26 4
gpt4 key购买 nike

所以我有一个包含 6 列的表格,每一列对应于某种产品类型。每列包含一个数字,对应于人们选择该产品类型的次数。

A | B | C | D | E | F
---------------------
0 | 0 | 0 | 0 | 0 | 0

因此,如果用户选择类型 A,那么我想将 A 列的编号从 0 更新为 1。所以这是我写的 SQL 代码:

$link = new PDO('***;dbname=***;charset=UTF-8','***','***');
$stmt = $link->prepare("UPDATE table SET :column=:num");
$stmt->bindParam(':column', $column);
$stmt->bindParam(':num', $num);
$stmt->execute();

但它根本没有更新任何东西。所以我猜 SQL 代码有问题,很可能与列占位符 :column 有关。谁能告诉我正确的 SQL 代码?

最佳答案

首先确保 $column 在可接受的值列表中。接下来,您不能绑定(bind) :column 您将像这样分配它:

$stmt = $link->prepare('UPDATE table SET ' . $column .' = :num'); 
$stmt->bindParam(':num', $num);
$stmt->execute();

如果你要检查一个有效的 $column 我会使用

$valid_column = preg_match('/[a-z0-9_]/i, $column);

或足够的替换(preg_replace)。尽管您可能会将其包装在 try/catch 中并设置要在 PDO 实例中抛出的异常以确保它是合法的。

关于php - 更新 SQL 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13424009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com