Показать пользовательское сообщение, если запись не существует в базе данных php - PullRequest
0 голосов
/ 19 марта 2012

Можно ли отобразить пользовательское сообщение об ошибке, если в базе данных нет записи?

Например, эта страница существует как запись в базе данных:

testpage.php?recordID=123456

тогда как эта запись не:

testpage.php?recordID=857389

Ответы [ 4 ]

1 голос
/ 19 марта 2012

Вам нужно проверить количество возвращаемых строк, используя mysql_num_rows () . Если запись существует, mysql_num_rows вернет 1 или больше (количество строк, соответствующих запросу).

Вы также можете сначала проверить, действительно ли был выполнен запрос, или он обнаружил ошибку в вашем sql. Он детализирует ошибки в mysql_error () .

$query = mysql_query($example_sql);

if (!$query = mysql_query($example_sql))
{
    trigger_error(' Mysql_error: ' . mysql_error() . " SQL: " . $example_sql, E_USER_WARNING); //Outputs the error to your error log
    echo "There was an error contacting the database.";
}
else if (mysql_num_rows($query) <= 0)
{
   echo "That record does not exist.";
}
else
{
    //Query returned 1 or more rows, output as normal
}
0 голосов
/ 19 марта 2012

Можно ли отобразить пользовательское сообщение об ошибке, если в базе данных нет записи?

Да.

Обычно страница, которая получает такую ​​переменную, состоит из кода, который запрашивает базу данных. И получить какой-то результат.

Не запрещено проверять такой результат с помощью условного оператора и показывать любое сообщение (которое, скорее всего, должно быть ответом HTTP 404).

0 голосов
/ 19 марта 2012

вам нужно будет проверить, сколько результатов будет возвращено с этим идентификатором записи:

<?php

$recordID = $_GET['recordID'];

$sqldb = /*create database connection here*/

$result = mysql_query("SELECT * FROM your_table WHERE id = " . $recordID, $sqldb);
$num_rows = mysql_num_rows($result);

if($num_rows > 0)
{
  echo "record exists with id " . $recordID;
}else
{
  echo "record doesn't exist with id " . $recordID;
}

?>
0 голосов
/ 19 марта 2012

вы можете посчитать строки, mysql_num_rows, это позволит вам найти, если идентификатор существует, 1 строка = существует, 0 строк = не существует.

if (mysql_num_rows($query) < 1) {

    print "This record does not exist);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...