ZingXing Ответов: 1

Проблема: попытка получить свойство не-объекта


Мой тип ввода в форме в html-datetime-local и хранится в таблице в mysql.
В моей таблице в mysql я создал столбец с именем deadline, тип которого-datetime.

Я пытаюсь отобразить строку, после которой истекает крайний срок.
Но он показывает ошибку "попытка получить свойство не-объекта".
Я не понимаю почему.

Что я уже пробовал:

<?php
$servername = "localhost";
$имя пользователя = "корень";
$пароль = "";
$dbname = "MyDB";

// Создать соединение

$соед = новый в mysqli($имя_сервера, $имя пользователя, $пароль $имя_бд);

// Проверить подключение


$sql = "SELECT Ass, Deadline, FROM Board WHERE Deadline >= NOW()";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
// выходные данные каждой строки
while($row = $result->fetch_assoc()) {
эхо "
Назначение: ". $строки["жопа"]. "- До: ". $строки["дедлайн"]. "
";
}
} еще {
Эхо "0 результатов";
}
$conn->закрыть();
?>

Richard MacCutchan

Вам нужно проверить, какая строка выдает ошибку, а какая переменная является нулевой.

1 Ответов

Рейтинг:
1

Jochen Arndt

Всегда проверяйте наличие mysqli ошибки, особенно во время разработки, потому что тогда вы можете получить значимые сообщения об ошибках:

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_errno) {
    printf("Connect failed: %s\n", $con->connect_error);
    exit();
}
if ($result = $conn->query($sql)) {
    // $result is an object and can be used to fetch row here
}
else {
    printf("Query failed: %s\n", $conn->error);
}

Возможный источник ошибки находится в строке запроса, которая имеет неожиданную запятую между DeadLine и FROM Такие синтаксические ошибки приводят к логическому значению FALSE быть возвращены query() вместо функции mysqli_result объект. А логический тип не является типом объекта и поэтому не имеет таких свойств, как num_rows.

Смотреть также РНР: в mysqli::запрос - руководство по эксплуатации[^]-