gpt4 book ai didi

PHP PDO 无效参数号 : mixed named and positional parameters

转载 作者:行者123 更新时间:2023-12-03 08:56:30 27 4
gpt4 key购买 nike

当我尝试执行以下查询时,收到以下警告。

错误

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters in E:\xampp\htdocs\msdca\attendance.php on line 142

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number in E:\xampp\htdocs\msdca\attendance.php on line 142

查询

$name = $_GET['name'];
$stmt = $pdo->prepare("SELECT `st_id`, `st_name` FROM `students` WHERE st_name LIKE ? or st_phone LIKE ? AND atd_year = :year");
$param = array("%$name%", "%$name%");
$stmt-> bindValue(':year', $_GET['yid']);
$stmt-> execute($param);

什么可能导致这里出现问题?任何帮助将不胜感激。谢谢。

最佳答案

您的问题正是错误消息所说的那样,您在同一查询中使用位置参数(?)和命名参数(:year),这不是允许。您需要始终如一地使用其中之一,例如

$name = $_GET['name'];
$stmt = $pdo->prepare("SELECT `st_id`, `st_name` FROM `students` WHERE st_name LIKE ? or st_phone LIKE ? AND atd_year = ?");
$param = array("%$name%", "%$name%", $_GET['yid']);
$stmt-> execute($param);

或使用命名参数:

$name = $_GET['name'];
$stmt = $pdo->prepare("SELECT `st_id`, `st_name` FROM `students` WHERE st_name LIKE :name or st_phone LIKE :phone AND atd_year = :year");
$param = array(':name' => "%$name%", ':phone' => "%$name%", ':year' => $_GET['yid']);
$stmt-> execute($param);

关于PHP PDO 无效参数号 : mixed named and positional parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54898691/

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