gpt4 book ai didi

php - PDO 中的 "Invalid parameter number"

转载 作者:行者123 更新时间:2023-11-29 07:33:20 24 4
gpt4 key购买 nike

我在 PDO 中做一个准备好的语句。我收到下面写的错误,我不知道我的错误在哪里。

Error!: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

代码:

$qA=array();
$lastName=$_POST['cours'];

if(trim($_POST["nomActivity"]) != ""){
$nomActivity= filter_var($_POST['nomActivity'], FILTER_SANITIZE_STRING);
$qA[] = "a.title = :title";
}
if(trim($_POST["nPlace"]) != ""){
$nPlace= filter_var($_POST['nPlace'], FILTER_SANITIZE_NUMBER_INT);
$qA[] = "a.nPlace = :nPlaceA";
}
if(isset($_POST['date'])){
$date = $_POST['date'];
$qA[] = "a.date = :date";
}

$stmtA = $con->prepare("UPDATE activity a SET " . implode(", ", $qA) . " where a.title= :lastN");

if(trim($_POST["nomActivity"]) != ""){
$stmtA->bindParam(":title", $nomActivity);
}
if(trim($_POST["nPlace"]) != ""){
$stmtA->bindParam(":nPlaceA", $nPlace);
}
if(trim($_POST["date"]) != ""){
$stmtA->bindParam(":date", $date);
}
if(trim($_POST["cours"]) != ""){
$stmtA->bindParam(":lastN", $lastName);
}

$stmtA->execute();

最佳答案

看来你错过了正确的类(class)检查

  if(trim($_POST["nomActivity"]) != ""){
$nomActivity= filter_var($_POST['nomActivity'], FILTER_SANITIZE_STRING);
$qA[] = "a.title = :title";
}
if(trim($_POST["nPlace"]) != ""){
$nPlace= filter_var($_POST['nPlace'], FILTER_SANITIZE_NUMBER_INT);
$qA[] = "a.nPlace = :nPlaceA";
}
if(isset($_POST['date'])){
$date = $_POST['date'];
$qA[] = "a.date = :date";
}

// this one
if(isset($_POST['cours'])){
$lastName=$_POST['cours'];
} else {
$lastName = 'your_default_value';
}

而且你总是有 :lastN 来赋值

  $stmtA->bindParam(":lastN", $lastName);

关于php - PDO 中的 "Invalid parameter number",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50068846/

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