Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果mysqli prepared语句中的php中num_rows=0,则显示消息_Php_Mysqli_Prepared Statement - Fatal编程技术网

如果mysqli prepared语句中的php中num_rows=0,则显示消息

如果mysqli prepared语句中的php中num_rows=0,则显示消息,php,mysqli,prepared-statement,Php,Mysqli,Prepared Statement,我在尝试从php中的预处理语句查询中获取行数时遇到问题,我的查询如下所示: $DBH = getDBH(); $stmt = $DBH->prepare("SELECT info FROM list WHERE tag = ?"); $stmt->bind_param("s",$tag); $stmt->execute(); $stmt->bind_result($information); 我基本上只是想说,如果没有结果返回显示“no result returned”

我在尝试从php中的预处理语句查询中获取行数时遇到问题,我的查询如下所示:

$DBH = getDBH();
$stmt = $DBH->prepare("SELECT info FROM list WHERE tag = ?");
$stmt->bind_param("s",$tag);
$stmt->execute();
$stmt->bind_result($information);

我基本上只是想说,如果没有结果返回显示“no result returned”,有人能帮忙吗?

我不认识您正在使用的类,但通常我会这样做:

$sql = "SELECT * FROM dummy WHERE category=13";
$result = mysql_query($sql);
if(mysql_num_rows($result)>0) {
// execute for positive results
} else {
// execute for 0 rows returned.
}

我不认识您正在使用的类,但通常我会这样做:

$sql = "SELECT * FROM dummy WHERE category=13";
$result = mysql_query($sql);
if(mysql_num_rows($result)>0) {
// execute for positive results
} else {
// execute for 0 rows returned.
}

首先需要使用
$statement->store_result()
。使用您的代码:

$DBH = getDBH();
$stmt = $DBH->prepare("SELECT info FROM list WHERE tag = ?");
$stmt->bind_param("s",$tag);
$stmt->execute();
$stmt->store_result();
$num_rows = $stmt->num_rows;
$stmt->bind_result($information);

首先需要使用
$statement->store_result()
。使用您的代码:

$DBH = getDBH();
$stmt = $DBH->prepare("SELECT info FROM list WHERE tag = ?");
$stmt->bind_param("s",$tag);
$stmt->execute();
$stmt->store_result();
$num_rows = $stmt->num_rows;
$stmt->bind_result($information);

他显然是在使用mysqli作为后端,而不是普通的mysql。不过你说得对,getDBH()是一个手工制作的类,没有人知道它是methodswell,我遇到的问题是mysql_num_rows不起作用,我使用的是mysqli编写的语句,谢谢。这只是初始化一个新连接,我只是想找到一种方法,如果返回任何行,如果返回了行,则显示信息;如果没有返回行,则显示不同的消息。是的,这取决于您需要执行的操作,但mysqli是一种方法,而prepared语句是避免注入的方法。@jeffkee,您可能希望改为查看PDO。它与DBMS无关,根据我的经验,工作起来更容易一些(像这样的问题更少)。他显然是在使用mysqli作为后端,而不是普通的mysql。不过你说得对,getDBH()是一个手工制作的类,没有人知道它是methodswell,我遇到的问题是mysql_num_rows不起作用,我使用的是mysqli编写的语句,谢谢。这只是初始化一个新连接,我只是想找到一种方法,如果返回任何行,如果返回了行,则显示信息;如果没有返回行,则显示不同的消息。是的,这取决于您需要执行的操作,但mysqli是一种方法,而prepared语句是避免注入的方法。@jeffkee,您可能希望改为查看PDO。它与DBMS无关,根据我的经验,它更容易工作(像这样的问题更少)。getDBH只是初始化连接,它不做任何其他事情。当我使用$stmt->num_rows时,我只是尝试获取返回的行数;它总是返回0。getDBH只是初始化连接,它不做任何其他事情;它总是返回0.5,非常感谢。非常简单的修复,我不知道我必须先存储结果。再次感谢。太棒了,非常感谢。非常简单的修复,我不知道我必须先存储结果。再次感谢。