我想運行多個mysql查詢(不是併發)。我正在使用準備好的語句來做這件事。這是我的代碼要點:無效的對象或資源mysqli_stmt
<?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():號碼的變量不匹配 準備好的語句中的參數數量
有人可以告訴我我做錯了什麼嗎?
是不是一個字符串'激活=」是''?你在哪裏獲得$ userid'?是不是'$ stmt-> bind_param(「ss」,$ username,$ activationid);' –
我已經設置活動列是一個枚舉 –
我錯過了什麼,或者你創建了兩個變量「$ username」和「$用戶ID」。如果是這樣,$ userid沒有被定義。 – Reisclef