嗨,我是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;
答案 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