Php 脚本调用错误的echo

Php 脚本调用错误的echo,php,Php,我正在尝试从数据库返回数据。查询将返回零或一。如果数据返回一个(如果psv1=1),我想回显“找到的数据”。如果数据返回零(如果psv1=0),我想回显“未找到数据” 当我运行脚本时,我总是得到“未找到数据”,即使是psv1=1。我还尝试将$res[0]==1更改为$res[0]>0,但没有成功 $result = mysqli_query($db_handle, 'SELECT psv1 FROM cus WHERE id="1" AND user_id="'. $_SESSION['user

我正在尝试从数据库返回数据。查询将返回零或一。如果数据返回一个(
如果psv1=1
),我想回显“找到的数据”。如果数据返回零(
如果psv1=0
),我想回显“未找到数据”

当我运行脚本时,我总是得到“未找到数据”,即使是
psv1=1
。我还尝试将
$res[0]==1
更改为
$res[0]>0
,但没有成功

$result = mysqli_query($db_handle, 'SELECT psv1 FROM cus WHERE id="1" AND user_id="'. $_SESSION['user_id'] .'"');
$res = mysqli_fetch_row($result);

if ($res[0] == 1){
    echo 'Data found';  
}
else
{
echo "No data found";
}
根据,mysqli_fetch_row()在失败时将返回NULL,否则将返回与数据行对应的字符串数组作为枚举数组。我还建议通过大量示例测试mysqli_query()是否按照手册的建议返回FALSE。因此,更好的测试是在特定查询中设置$query时编写如下代码:

<?php

$result = null;
$res = null;

$result = mysqli_query( $db_handle, $query ) OR die( mysqli_error( $db_handle ));

if( ( $res = mysqli_fetch_row( $result )) === NULL ) {
     // Nothing to fetch
}        
else 
{
     echo ($res[0] == 1 )? "Data found." : "No data found";
} 

我想知道在WHERE中是否需要这两个条件。您是否打算使用id和用户id。建议删除:

id="1" AND
只能是猜测,但似乎不太可能

在检查未返回结果时,我是否可以建议尝试:

$result = mysqli_query($db_handle, 'SELECT psv1 FROM cus WHERE id="1" 
AND user_id="'. $_SESSION['user_id'] .'"');

$res = mysqli_fetch_row($result);

if(mysqli_num_rows($result) > 0){ 

echo 'Data found'; 

}

else {

echo "No data found";

}

您应该使用
mysqli\u fetch\u数组($result,mysqli\u ASSOC)


您意识到需要先获取数据,然后才能进行比较,对吗?您不是在比较
psv1
而是在比较行数您是对的。我改了。但是现在我总是得到“未找到数据”
print\r($res)
您将看到真实值
print\r($res)
不打印任何内容,因为
$res
FALSE
(您可以使用以确保)。这意味着查询不正确或
$db\u handle
不是有效的MySQLi连接。当为
id
user\u id
启动查询时,为什么需要
foreach
?还有,如果不是这样的话,为什么是多余的呢。这很容易避免伙计,你在开玩笑吧。。在这种情况下,您还应该检查
$\u SESSION['user\u id']
变量是
not-a-string
,是一个正整数,长度小于10,等等。如果不满足这些检查,为什么还要启动一个查询,对吗?@slevy1-请详细说明。目的是检查
psv1
是否有值==1。因此,我们不应该直接检查NULL、零或任何东西,而应该检查1。好的,我更新了它。其次,如果查询失败,它应该是一个异常和/或应该由框架处理。而是让
试着抓住它。一个人不可能对他/她正在构建的应用程序中的每个查询都进行检查。应该有一个查询包装器,理想情况下每个框架都有。因此,拥有那张支票是没有意义的。
$result = mysqli_query($db_handle, 'SELECT psv1 FROM cus WHERE id="1" AND user_id="'. $_SESSION['user_id'] .'"');
$res = mysqli_fetch_array($result, MYSQLI_ASSOC);

if ($res['psv1'] == 1){
    echo 'Data found';  
}
else {
    echo "No data found";
}