mysqli_stmt :: bind_param():[重复项]中的变量数与准备好的语句中的参数数不匹配

问题描述 投票:2回答:2
我想运行多个mysql查询(不能同时运行)。我正在使用准备好的声明来这样做。这是我的代码的要点:

<?php if(isset($_GET['username'])&&isset($_GET['activationid'])){ require_once("../database/db_connect.php"); $stmt= $mysqli->stmt_init(); $stmt->prepare("Select username FROM users where username= ? AND activationid= ?"); $username=$_GET['username']; $activationid=$_GET['activationid']; $stmt->bind_param("ss",$username,$activationid); $stmt->execute(); $row=$stmt->get_result()->fetch_array(MYSQLI_ASSOC); if(!strcmp($row['username'],$username)){ echo 'you are registered successfully'; $stmt->prepare("UPDATE users SET active=yes where username = ?"); $stmt->bind_param("s",$username); $stmt->execute(); } } ?>

和db_connect.php是:

<?php define('DBHOST','localhost'); define('DBUSER','root'); define('DBPASS','password'); define('DBNAME','Reminder'); $mysqli= new mysqli(DBHOST,DBUSER,DBPASS,DBNAME) ; if($mysqli->connect_error) { echo $mysqli->mysqli_connect_error(); } else { echo "connected successfully"; } ?>

这给了我这个错误:

警告:mysqli_stmt :: bind_param():变量数量不匹配 []中已准备好的语句中的参数数

有人能告诉我我在做什么错吗?

我想运行多个mysql查询(不能同时运行)。我正在使用准备好的声明来这样做。这是我的代码的要点:

php mysql mysqli prepared-statement
2个回答
2
投票
请按如下所示整理您的代码并检查:-

1
投票
[准备后和绑定后(以及执行前),执行
© www.soinside.com 2019 - 2024. All rights reserved.