我正在使用以下 foreach 循环构建 SQL 查询:
$sql = "UPDATE table01 SET ";
foreach(array_combine($values, $variables) as $value=>$variable)
{
$sql .="$value = $variable,";
}
$sql = rtrim($sql,',');
$sql .=" WHERE id = '$id'";
$values 是要更新的字段标题数组(db 中的列标题),而 $variables 是包含数据的变量数组。
由这种循环构建的查询示例如下:
UPDATE table01
SET sv_21 = 123, sv_22 = 123, sv_23 = 2011, sv_I8 = 1 sachet every day, sv_I9 = 3
WHERE id = '001'
SQL of 将“每天”识别为语法,它会破坏更新命令。
我怎样才能输入这些数据?实际上,这些查询通常要大得多,并且多个字符串会导致语法错误。
感谢您的考虑
如果是相关的,这里是我用来执行更新的 PDO:
try
{
$pdo = new PDO('mysql:host=localhost; dbname=tables', $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare($sql);
$stmt->execute();
# Affected Rows?
echo $stmt->rowCount(); // 1
}