Как я могу избежать MySQL «Невозможно перейти строку 0» ошибка? - PullRequest
0 голосов
/ 26 августа 2009

Мой вопрос: как я могу быть уверен, что строка, которую я хотел бы вернуть, существует? Я не хочу подавлять это с помощью опции @ в PHP или подсчитывать количество строк перед каждым запросом, чтобы узнать, существует строка или нет.

Итак, есть простой запрос, подобный этому:

"SELECT `title`, `id` FROM `event` WHERE `id` = '234'";

и таблица не может содержать строку с id 234.

Ответы [ 2 ]

1 голос
/ 26 августа 2009

Вам не нужно считать строки перед каждым запросом - обычно вы делаете это после.

Как насчет этого

$query = "SELECT `title`, `id` FROM `event` WHERE `id` = '234'";

$results = mysql_query($query);

if (mysql_num_rows($results)) {
    // do something because it was found
}
0 голосов
/ 26 августа 2009

Вы, вероятно, используете mysql_result () для извлечения полей. Рассмотрим взамен mysql_fetch_array . Возвращает FALSE, если больше нет строк для выборки.

<?php
$mysql = mysql_connect('..', '..', '..') or die(mysql_error());
mysql_select_db('..', $mysql) or die(mysql_error());

$query = "SELECT `title`, `id` FROM `event` WHERE `id` = '234'";
$result = mysql_query($query, $mysql) or die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);

if ( !$row ) {
  echo 'no such record';
}
else {
  echo $row['title'], ' ', $row['id'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...