PHP預先處理語句執行過程中不知道什麼問題,求大神解答,分數不多,下面是代碼
$servername = 'servername'; //伺服器名稱
$username = 'username'; //資料庫使用者名稱
$password = 'password'; //登入密碼
$dbname = 'mydb';
//建立串連
$conn = new mysqli($servername, $username, $password, $dbname);
//檢測串連(PHP 5.2.9和5.3.0版本適用)
/* if($conn->connect_error){
die('串連失敗:' . $conn->connect_error);
} */
//檢測串連(相容更早版本)
if(mysqli_connect_error()){
die('串連失敗:' . mysqli_connect_error());
}
else{
$sql = "INSERT INTO myguests VALUES(?, ?, ?)";
//為mysqli_stmt_prepare()初始化statement對象
$stmt = mysqli_stmt_init($conn);
echo $stmt; //不知道為什麼$stmt是空的,沒有資料
//預先處理語句
if(mysqli_stmt_prepare($stmt, $sql)){
//綁定參數
mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);
//設定參數並執行
$firstname = 'Sam';
$lastname = 'Poly';
$email = [email protected]';
mysqli_stmt_execute($stmt);
$firstname = 'Mary';
$lastname = 'Moe';
$email = [email protected]';
mysqli_stmt_execute($stmt);
$firstname = 'Julie';
$lastname = 'Dooley';
$email = [email protected]';
mysqli_stmt_execute($stmt);
echo '插入成功';
}
}
好像mysqli_stmt_init($conn)執行後沒反應,我echo了一下,沒東西輸出,所以後面的mysqli_stmt_prepare($stmt, $sql)也執行不下去了,實在不清楚為什麼沒有執行,也沒有報錯
------解決思路----------------------
你用混了!
$conn = mysqli_connect(....)
mysqli_stmt_init($conn)
這是一對
$conn = new mysqli(.....)
$conn ->stmt_init()
這才是一對