如何检查数据库列中是否存在var,如果不存在则不执行任何操作

时间:2010-12-19 23:28:36

标签: php mysql where exists

嗨,我是mysql的新手,我希望我要做的事情很简单。当对应于$ imgFile的标题列下的行星表中有一个条目时,下面的sql有效。我遇到的问题是并非所有的$ imgFiles都在数据库中。因此,如果是这种情况,第3行$caption=mysql_result($data, '0')会抛出此错误:

警告:mysql_result()[function.mysql-result]:无法跳转到第3行/home/drawapl1/public_html/planet.php中MySQL结果索引3的第0行

如何更改此设置以便仅设置$ imgFile存在的$ caption?

$retrieveCaption="SELECT caption from planets where image='$imgFile'";

$data=mysql_query($retrieveCaption); 

$caption=mysql_result($data, '0');

echo $caption;

2 个答案:

答案 0 :(得分:1)

您可以使用mysql_num_rows()捕获空结果集。

if( mysql_num_rows($data) == 0 ) {
    // No results returned

或者使用在这种情况下不会发出警告的功能,例如mysql_fetch_assoc()

$row = mysql_fetch_assoc($data);
if( $row ) {
    $caption = $row['caption'];
} else {
    $caption = "Default";
}

答案 1 :(得分:0)

Yoy可以询问MySQL是否找到了任何内容:

if ( 0 < mysql_num_rows($data) ) { // results

如果没有结果,请不要使用mysql_result。

另外:'0'想要成为0(int而不是字符串)。

另外:你应该将所有输入转义为SQL查询,因此你应该转义$ imgFile