我希望构建一个能够动态生成SQL并使用PDO和预处理语句执行它的函数,而不使用列名/ where子句进行硬编码。 where子句"卡路里"下面的例子和"颜色"如果情况需要,我希望能够添加额外的标准以及更少或没有where子句的功能。
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
这是一个插入函数,允许您动态传入我创建的值。
public function insert($table,$columnValueArray){
$columns = implode(",",array_keys($columnValueArray));
$sql = "INSERT INTO ".$table." (?) VALUES (?)";
$sth = $conn->prepare($sql);
foreach($columnValueArray as $singleArray){
$values = implode(",",$singleArray);
$sth->execute(array($columns),$values);
}
}
我想要一个类似的函数来创建一个更新函数,问题是更新函数需要一个where子句,它可以为数组中的每一行改变
答案 0 :(得分:0)
我实际上前一段时间对这个问题做了类似的回答:
它将基于来自WHERE
数组的命名param绑定动态构建基本$_POST
子句,因此它不适用于?
参数,但说实话,我不确定为什么你依靠数组的顺序来停止SQL注入和其他类似的攻击,因为数组的顺序不能总是在PHP中保证。