【发布时间】:2025-12-08 08:30:04
【问题描述】:
所以我试图在 foreach 中进行数量不定的 bindParam 调用,但由于某种原因它失败了。我知道 $sql 变量工作正常,但我很确定它在 bindParam 上失败了。这有什么原因吗?
$sql = "INSERT INTO " . $row1["rand"] . " (" . $areas . ") VALUES (" . $vals . ")";
echo $sql;
$entry2 = $conn->prepare("'".$sql."'");
//echo "swag";
foreach($splitHeader as $element){
if(strlen($element)>0) {
$thisVal = "':" . $element . "'";
$entry2->bindParam($thisVal,$_POST[$element]);
}
}
$entry2->execute();
【问题讨论】:
-
在您的
prepare()通话中删除"'"内容。只是$conn->prepare($sql); -
您是在检查
prepare()之后的错误还是启用了 PDO 异常?它会告诉您引号内的 SQL 语句是语法错误。 -
当您创建
$thisVal时,您也在参数名称周围加上单引号。你不需要那些。您也不需要$thisVal中的:前缀。
标签: php mysql pdo prepared-statement