Я продолжаю получать эту ошибку при написании кода, связанного с базой данных. За последний месяц или около того я пытался использовать различные методы, чтобы обойти ошибки, с которыми я сталкиваюсь. Единственный, кого я нашел, был foreach относительно обмена сообщениями.PHP и MySQL Я не вижу эту ошибку?
История вопроса: У меня есть персональный сайт, к которому я в настоящее время пытаюсь включить социальные функции, такие как обмен сообщениями и друзей. В будущем я планирую добавить такие вещи, как фотографии профиля и многое другое.
Ошибка:
[TIME] [:error] [pid PID] [client IP:PORT] PHP Fatal error: Call to a member function bind_param() on a non-object in /www/hub/models/funcs.php on line 1656, referer: http://my.website.com/hub/users.php
Точки об ошибках в этой строке:
$stmt->bind_param("i", $user);
доступ к которой осуществляется с помощью этой функции:
function getUnreadMessages($user)
доступ к которой осуществляется с помощью этого ресурса:
left-nav.php
доступ к которой осуществляется с помощью каждой страницы на сайте, который пытается запустить эту строку кода:
$unread = getUnreadMessages($loggedInUser->user_id);
Так что он может запускать эти строки кода:
if($unread > 0){
echo "<li><a href='user_messages.php'>Messages</a>(".$unread.")</li>";
}else{
echo "<li><a href='user_messages.php'>Messages</a></li>";
}
Это полная функциональность:
function getUnreadMessages($user){
global $mysqli,$db_table_prefix;
$stmt = $mysqli->prepare("SELECT
id,
from_user,
to_user,
time_sent,
subject,
message,
deleted
FROM ".$db_table_prefix."messages
WHERE
to_user = ?
AND
read = 0
");
$stmt->bind_param("i", $user);
$stmt->execute();
$unread = $stmt->num_rows;
$stmt->close();
return($unread);
}
Извините, это настолько грязно. Надеюсь, вы поймете мое разочарование. Есть больше ошибок, но сейчас это самая большая проблема. Если кто-то из вас захочет предоставить дополнительную поддержку за пределами этого поста, я буду очень благодарен.
Каков тип данных столбца 'to_user'? – keziah
Вы установили экземпляр объекта для '$ mysqli'?Подобно '$ mysqli = new mysqli (DB_HOST, DB_USER, DB_PASS, DB_NAME),' – keziah
@thewbmstr http://i.imgur.com/p2z83Xh.png –