-1
感謝您花時間閱讀這本書,我提前道歉我的編碼是多麼混亂,我試圖教我自己。如果輸入的名稱,電子郵件或電話與數據庫匹配,則在運行檢查時獲取行的id時,我會遇到錯誤。我試圖獲取該ID,以便我可以將該ID作爲郵件的「owner_id」,當我存儲它時。mysql row id正在返回0,當它應該返回一個更高的數字
Fatal error: Call to undefined method mysqli_stmt::fetch_assoc() in /var/www/a-website.com/html/inc/db3.php on line 35
線35
while($row = $prepared_check->fetch_assoc()){
這裏是整個PHP文件。它在另一個php文件中的required_once,並運行在該PHP文件使用
checkRecords($name, $tel2, $email);
反正,到PHP文件。
$run_check = 1;
function newInsert($name, $email, $tel, $mysqli){
$prepared_insert = $mysqli->prepare("INSERT INTO call_list (name, email, tel) VALUES (?, ?, ?)");
$prepared_insert->bind_param('sss', $name, $email, $tel);
$prepared_insert->execute();
$run_check = 1;
}
function storeMessage($id, $message, $mysqli){
$prepared_message = $mysqli->prepare("INSERT INTO messages (owner_id, message) VALUES (?, ?)");
$prepared_message->bind_param('ss', $id, $message);
$prepared_message->execute();
$prepared_message->close();
$run_check = 0;
}
function checkRecords($name, $email, $tel, $message){
$servername = "localhost";
$username = "a_valid_user";
$password = "some_valid_password";
$dbname = "call_list";
$mysqli = new mysqli($servername, $username, $password, $dbname);
if($mysqli->connect_errno){
$_SESSION['result_sql'] = "<div class='alert alert-danger'>Failed to connect to MySQL:(".$mysqli->errno.")". $mysqli->error."</div>";
}
$prepared_check = $mysqli->prepare("SELECT * FROM call_list WHERE name = ? OR tel = ? OR email = ?");
$prepared_check->bind_param('sss', $name, $tel, $email);
$prepared_check->execute();
$prepared_check->store_result();
$nm_rows = $prepared_check->num_rows;
$prepared_check->bind_result($id, $name, $tel, $email);
while($row = $prepared_check->fetch_assoc()){
echo "grabbed ". $nm_rows ." results<br><br>";
if($nm_rows === 0){
echo "trying to insert<br><br>". $name ."<br><br>". $email ."<br><br>". $tel;
newInsert($name, $email, $tel2, $mysqli);
}else{
echo "i'm trying to store a message with the owner id of ". $row['id'] ." who should be".$row['name'];
echo "<br><br> here's the message: <br><br>". $message ."<br><br><br>";
storeMessage($id, $message, $mysqli);
}
}
}
我認爲你需要提供源到'fetch_assoc()'函數,因爲它在你的問題中不可見。 – cbillowes
'mysqli_statement'沒有'fetch_assoc'方法。從你的代碼中,你可能只需要'fetch'。 –
爲什麼這樣的錯誤信息不足以解決?這不明顯嗎? –