我不断收到此错误消息。
参数号无效:绑定变量数与令牌数不匹配
我正在尝试将变量放在数组中。但我一直得到错误,有什么stmt我应该使用我失踪?你可以向我解释一下,或者推荐一些我能阅读的东西,以了解如何正确使用它们吗?
$userA = $request->getParam('usera');
$userB = $request->getParam('userb');
$userC = $request->getParam('userc');
$sql = "SELECT *FROM admins";
try {
$db = new db();
$db = $db->connect();
$stmt = $db->prepare($sql);
$stmt->bindParam(':Adminusera', $userA);
$stmt->bindParam(':Adminuserb', $userB);
$stmt->bindParam(':Adminuserc', $userC);
$stmt->execute();
$admin = $stmt->fetch(PDO::FETCH_OBJ);
$db = null;
if(!empty($admin)){
$newUsers = array('a' => $userA, 'b' => $userB, 'c' => $userC);
print_r($newUsers); }
答案 0 :(得分:0)
抱歉,我认为你有绑定问题..... 这是你获取参数的方法
// $_GET parameters
$request->query->get('name');
// $_POST parameters
$request->request->get('name');
我这样做是因为如果有人遇到与之相关的问题,可以找到有用的东西
[使用bindParam]与PDOStatement :: bindValue()不同,变量被绑定为引用,并且仅在调用PDOStatement :: execute()时进行计算。
所以,例如:
$name = 'Alex';
$s = $dbh->prepare('SELECT name FROM students WHERE name = :name');
$s->bindParam(':name', $name); // use bindParam to bind the variable
$name = 'Mike';
$s->execute(); // executed with WHERE name = 'Mike'
或
$name = 'Alex';
$s = $dbh->prepare('SELECT name FROM students WHERE name = :name ');
$s->bindValue(':name ', $name ); // use bindValue to bind the variable's value
$name = 'Mike';
$s->execute(); // executed with WHERE name = 'Alex'