我的问题是我如何确定我想要返回的行是否存在?我不希望用PHP的@选项来抑制它,或者在每次查询之前计算行数以找出该行是否存在。
所以有一个简单的查询:
"SELECT `title`, `id` FROM `event` WHERE `id` = '234'";
并且该表不能包含id 234
的行。
答案 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'];
}