標籤:
<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "myDB";// 建立串連$conn = new mysqli($servername, $username, $password, $dbname);// 檢測串連if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}// prepare and bind$stmt = $conn->prepare("INSERT INTO MyGuests VALUES(?, ?, ?)");$stmt->bind_param("sss", $firstname, $lastname, $email);// 設定參數並執行$firstname = "John";$lastname = "Doe";$email = "[email protected]";$stmt->execute();$firstname = "Mary";$lastname = "Moe";$email = "[email protected]";$stmt->execute();$firstname = "Julie";$lastname = "Dooley";$email = "[email protected]";$stmt->execute();echo "New records created successfully";$stmt->close();$conn->close();?>
運行時報錯:
Call to a member function bind_param() on a non-object
原因:
bind_param 的第二個參數是起引用傳遞的
直接寫成字串,這是在 php 5.3 及以後是不允許的
解決方案:
將 $stmt = $conn->prepare("INSERT INTO myguests VALUES(?,?,?)");
改成$stmt = $conn->prepare("INSERT INTO myguests(firstname, lastname, email) VALUES(?,?,?)");
php 寫入資料庫時Call to a member function bind_param() on a non-object