0) 检查无用-6ren"> 0) 检查无用-我对将 mysql 与 php 结合使用还很陌生,这是我在网上找到的检索结果的内容: $con = mysql_connect(localhost,$username,$password); @mys-6ren">
gpt4 book ai didi

php - mysql_query ("SELECT...") 为不存在的主键值返回 NULL 值行,呈现 (mysql_num_rows > 0) 检查无用

转载 作者:行者123 更新时间:2023-11-29 05:39:40 25 4
gpt4 key购买 nike

我对将 mysql 与 php 结合使用还很陌生,这是我在网上找到的检索结果的内容:

$con = mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("Cannot connect to the database");
$query = "SELECT ... FROM ... WHERE ID=5";
$result = mysql_query($query);
$num = mysql_num_rows($result);
if ($num > 0 ) {
// do stuff
} else {
// inform user
}
mysql_close($con);

ID是我表的自动生成的非空主键。现在,我的表中有 20 条记录。如果我输入 ID与这些现有记录中的任何一个对应的值,一切顺利并按预期工作。

但是,如果我输入 ID例如,54 的值或与我现有的 20 条记录中的任何一条都不对应的任何值(意味着不存在具有此类 ID 的行),我期望 $num <= 0我的条件语句将转到 else堵塞。但我发现情况并非如此 - 它仍然转到 TRUE分支并前进到// do stuff block ,所以我在 phpmyadmin 上运行了查询,发现我正好得到 1 行 NULL在所有领域。这就是为什么 $num正在返回 1这是>0 .

问题:

  1. 我该如何正确地检查不存在的行?这样我的脚本的其余部分只会在我实际获得包含数据的行时运行。
  2. 我找到了mysql_store_resultmysql_free_result在网上研究这个但是没有足够的信息来使它们正常工作。比如我将它们放在我的代码中的什么位置,为什么我可以在没有它们的情况下立即在 php 中做我需要做的事情,等等?
  3. 在 php 中处理 mysql 数据库时,我是否遗漏了任何“最佳实践”内容?
  4. 当我必须调用多个 sql 语句时,我所做的是循环遍历 $query - $result - $num我之前的过程 mysql_close我的连接。这是“最佳实践”吗?

非常感谢,伙计们,你们都很棒。

更新:包括整个查询

SELECT Dyna, 
Floater,
Can.Label as CanLabel,
GROUP_CONCAT(DISTINCT Vanity.Name SEPARATOR ', ') as VanityName,
GROUP_CONCAT(DISTINCT Univ SEPARATOR ', ') as Univ,
ShopDate,
ManuDate,
FlipTran,
Remarks,
Bib,
Abbrev,
ShopChar,
Comment,
Value,
ERUSD
FROM
(Vanity INNER JOIN ((Vanity INNER JOIN Shoppy ON Vanity.VanityID = Shoppy.VanityID) INNER JOIN ShoppyVanity ON Shoppy.ID = ShoppyVanity.ID) ON Vanity.MethodID = ShoppyVanity.MethodID) INNER JOIN UAC ON (Shoppy.VanityID = UAC.VanityID) AND (Vanity.VanityID = UAC.VanityID)
WHERE (((Shoppy.ID)=5))

最佳答案

如果您使用组聚合函数,例如 GROUP_CONCAT,MySQL 将从您的整个结果集中创建一个组。如果没有结果,它将改为在 NULL 值上运行它们,从而产生一个空行。尝试将此添加到查询的最后,以删除其中没有有效数据的行:

HAVING VanityName 不为空

关于php - mysql_query ("SELECT...") 为不存在的主键值返回 NULL 值行,呈现 (mysql_num_rows > 0) 检查无用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7776167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com