我想运行多个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():变量数与
有人能告诉我我做错了什么吗?
发布于 2015-06-14 16:06:11
请按以下方式执行您的代码,并检查:-
//$stmt= $mysqli->stmt_init(); comment this line
$stmt = $mysqli->prepare("Select username FROM users where username= ? AND activationid= ?") or die( $mysqli->error);
$username=$_GET['username'];
$activationid=$_GET['activationid'];
$stmt->bind_param("ss",$userid,$activationid);
$stmt->execute();至于第二个同样的问题:-
$stmt = $mysqli->prepare("UPDATE users SET active=yes where username = ?") or die($mysqli->error);
$stmt->bind_param("s",$username);
$stmt->execute();注意:-请注意您的变量是正确定义和设置的。谢谢。
发布于 2015-06-14 16:11:01
在准备好和绑定之后,(在执行之前),执行
echo $mysqli->error;
没有什么比知道到底发生了什么
https://stackoverflow.com/questions/30831514
复制相似问题