gpt4 book ai didi

php - 测试 SQL 查询的真假

转载 作者:行者123 更新时间:2023-11-29 03:57:17 25 4
gpt4 key购买 nike

$sql = "SELECT # FROM users WHERE onduty = 1 AND loc_id = '{$site}';"; 
$result = mysql_query($sql);

我只是想测试一下这是对还是错。如果它返回 0 行,我希望下一行是这样的:

if (!$result) { //do this; }

然而,在我的测试中,当我知道它应该是真的时,我却变得错误。这是合理的逻辑吗?

(注意,是的,我知道我应该使用 mysqli_query,这不是我在这里要问的)**

回答:这是我使用的:

$login_state = false;
if(mysql_num_rows(mysql_query("SELECT 1 FROM users WHERE onduty = 1 AND loc_id = '{$site}';"))) {
$login_state = true;
}

最佳答案

使用EXISTS :

SELECT EXISTS (SELECT 1 FROM users WHERE onduty = 1 AND loc_id = '{$site}') AS test;

如果找不到符合条件的行,您的原始查询将返回“无行”。每次返回 TRUE (1) 或 FALSE (0)。

在可能有多行匹配条件的情况下,您只关心是否至少有一行存在,EXISTS 的性能优于普通查询。它可以在找到第一行后立即停止,并且只返回 01

db<> fiddle here
<子>旧sqlfiddle

关于php - 测试 SQL 查询的真假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13784670/

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