如何逃脱MySQL'无法跳转0行'错误?

时间:2009-08-26 07:31:35

标签: php mysql

我的问题是我如何确定我想要返回的行是否存在?我不希望用PHP的@选项来抑制它,或者在每次查询之前计算行数以找出该行是否存在。

所以有一个简单的查询:

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

并且该表不能包含id 234的行。

2 个答案:

答案 0 :(得分:1)

您不必在每次查询之前计算行数 - 通常是在之后执行。

这样的事情

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

$results = mysql_query($query);

if (mysql_num_rows($results)) {
    // do something because it was found
}

答案 1 :(得分:0)

您可能正在使用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'];
}