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

Posted

技术标签:

【中文标题】如何检查 var 是不是存在于数据库列中,如果不存在则不执行任何操作【英文标题】:How do I check if var exists in database column and do nothing if it doesn't如何检查 var 是否存在于数据库列中,如果不存在则不执行任何操作 【发布时间】:2010-12-19 23:28:36 【问题描述】:

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

【问题讨论】:

到目前为止,您已经提出了 9 个问题。是时候学习格式化代码了。 很抱歉您不喜欢这种格式。如果你能指出我哪里出错了,也许我可以改进。我对编码还很陌生,但最近开始更多地作为一种爱好。 他在本网站的问题/答案中谈论将代码格式化为代码示例。您可以通过选择您的代码示例然后点击编辑器中的 按钮来做到这一点。 【参考方案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";

【讨论】:

【参考方案2】:

Yoy 可以询问 MySQL 是否找到任何东西:

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

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

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

另外:你应该将所有输入转义到 SQL 查询中,所以你应该转义 $imgFile

【讨论】:

以上是关于如何检查 var 是不是存在于数据库列中,如果不存在则不执行任何操作的主要内容,如果未能解决你的问题,请参考以下文章

检查一列中的值是不是存在于另一列中,如果存在,则将另一列中的值复制到新列中

检查 B 列中的值是不是存在于 A 列中

检查数组中的所有值是不是都存在于数据库列中

检查字符串是不是仅存在于前一个单元格包含 X 的列中?

检查列中的值是不是存在于数据框行中的其他位置

如何遍历列,检查任何列中是不是存在特定值,改变新列并输入 1 如果存在,如果不存在则输入 0?