gpt4 book ai didi

php - 无法运行查询 : SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

转载 作者:行者123 更新时间:2023-11-29 11:23:56 46 4
gpt4 key购买 nike

我这里有个问题。我不断收到此错误,即绑定(bind)变量的数量与 token 的数量不匹配。我仔细检查了我的代码,似乎没有错误。不管怎样,我对这些 PDO 还很陌生。

这是我如何调用数据库中的数据以在表单中回显的代码

if(isset($_GET['idstudent'], $_GET['idbook'])){
$_SESSION['link']=$_GET['idstudent'];
$_SESSION['link2']=$_GET['idbook'];
$sessionidstudent = $_SESSION['link'];
$sessionidbook = $_SESSION['link2']; }


$query = "
SELECT
*
FROM viewlibrary
WHERE
id = :sessionidstudent AND
serialno = :sessionidbook

";

$query_params = array(
':sessionidstudent' => $_SESSION['link'],
':sessionidbook' => $_SESSION['link2']
);

try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$r=$stmt->fetch(PDO::FETCH_ASSOC); ?>

这是我的 HTML 代码

<form action="editpage.php" method="post" class="login, reminder">
<p>Student Matric Number:
<input type="text" class="login-input" name="addmatricno" id="addmatricno" value="<?php echo $r['matricno'] ?>" placeholder="Enter student matric number">
Student Name:
<input type="text" class="login-input" name="addname" id="addname" value="<?php echo $r['studentname'] ?>" placeholder="Enter student name">
Programme:
<input type="text" class="login-input" name="addprogramme" id="addprogramme" value="<?php echo $r['programme'] ?>" placeholder="Enter student programme">
Education Level:

<?php

if($r['education_level'] == "PHD"){
echo '<select name="selectedulevel" id="selectedulevel" class="login-input">';
echo '<option disabled>Please select education level</option>';
echo '<option value="PHD" selected>PHD</option>';
echo '<option value="MASTER">MASTER</option>';
echo '<option value="PHD">DEGREE</option></p></select>';
}
else if($r['education_level'] == "MASTER"){
echo '<select name="selectedulevel" id="selectedulevel" class="login-input">';
echo '<option disabled>Please select education level</option>';
echo '<option value="PHD">PHD</option>';
echo '<option value="MASTER" selected>MASTER</option>';
echo '<option value="PHD">DEGREE</option></p></select>';
}
else{
echo '<select name="selectedulevel" id="selectedulevel" class="login-input">';
echo '<option disabled>Please select education level</option>';
echo '<option value="PHD">PHD</option>';
echo '<option value="MASTER">MASTER</option>';
echo '<option value="PHD" selected>DEGREE</option></p></select>';
}

?>
<input type="submit" name="updatestudent" id="updatestudent" value="Update Student" class="login-submit" style = "width: 20%; text-align: center">

最后但并非最不重要的一点是我的查询代码。

$query = " 
UPDATE student
SET
matricno = :addmatricno,
studentname = :addname,
programme = :addprogramme,
education_level = :selectedulevel
WHERE
id = :sessionidstudent
";

$query_params = array(
':addmatricno' => $_POST['addmatricno'],
':addname' => $_POST['addname'],
':addprogramme' => $_POST['addprogramme'],
':selectedulevel' => $_POST['selectedulevel']
);

try
{
// Execute the query to create the user
$stmt = $db->prepare($query);
//$stmt->bindValue(':sessionidstudent',$sessionidstudent);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
// Note: On a production website, you should not output $ex->getMessage().
// It may provide an attacker with helpful information about your code.
die("Failed to run query: " . $ex->getMessage());
}


// This redirects the user back to the login page after they register
echo '<script language="javascript">';
echo 'alert("Info updated successful.")';
echo '</script>';
header("Refresh: 0; updatebooks.php");
die();

注意:$db 引用 $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options); 我把其他文件放在其中,我可以确定我与数据库的连接完全没有问题。我已经多次检查我的代码,但仍然遇到相同的错误。

最佳答案

在查询参数变量中,您忘记在更新查询中添加 :sessionidstudent,添加该变量,错误就会消失

关于php - 无法运行查询 : SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38520743/

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