脚本调用错误的回声



我正在尝试从我的数据库中返回数据。查询将返回零或一。如果数据返回一个(if psv1=1),我想回显"找到的数据"。如果数据返回零(if 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_array($result, MYSQLI_ASSOC)

$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";
}

我想知道你是否需要 WHERE 中的两个条件。你的意思是要有ID和user_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";
}

请参阅相关的 SO 答案 mysqli_num_rows

根据手册,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";
} 

最新更新