gpt4 book ai didi

mysql - num_rows 不起作用?

转载 作者:行者123 更新时间:2023-11-29 11:00:47 24 4
gpt4 key购买 nike

我有一个 MySQL 数据库,但我的功能无法正常工作。我想知道我的数据库查询得到了多少结果,但我什么也没得到,甚至没有 0。我也尝试过 $values->num_rows;相同的结果。不要回电话号码...什么都没有

我的代码:

$values = $database->query("SELECT * FROM `wp_all_import_xml` WHERE name = '$title' AND price = '$price' AND shop = '$shop' AND link = '$link'");

$count_values = mysqli_num_rows($values);

echo "ERROR by detecting Product (More than 1 Row return by SQL!): " .$title. " Preis: " .$price. " Shop: " .$shop. " Link: " .$link. "\t num_rows: " .$count_values. "\n";

如何获取返回的行数?

问候

最佳答案

mysqli_num_rows 函数确实有效。

对观察到的行为最可能的解释是发生了错误并被忽略。

要对此进行调试,请首先确保启用错误报告。

修改代码以检查查询的返回结果。通过执行条件测试来验证它没有返回 FALSE。

if ($values = $mysqli->query(...) ) {
// query returned a resultset
} else {
// query returned FALSE
}

如果我们需要检索的只是行数,那么我们可以在 SELECT 列表中使用 COUNT(*)。

if ( $res = $mysqli->query("SELECT COUNT(*) AS cnt FROM ... ") ) {

如果查询成功,即使计数为零,我们也会返回一行。我们可以像处理其他查询的结果一样轻松地处理结果,而无需使用 num_rows 进行处理。 ,并担心查询是缓冲的还是非缓冲的等等。

<小时/>

我们假设 $database是 mysqli 连接,而不是 PDO 连接,因为代码包含对 mysqli_num_rows 的调用功能。如果是 PDO 连接,则“num_rows 不起作用”。

<小时/>

问题中的代码遵循易受 SQL 注入(inject)攻击的代码中常见的模式。 (在这段摘录中,我们无法确定 SQL 文本中包含的变量值是否可能不安全,因此我们无法判断它是否容易受到攻击。)

如果这是一个带有绑定(bind)占位符的准备好的语句,那么我们就可以知道。
使用带有绑定(bind)占位符的准备好的语句。这并不难。

关于mysql - num_rows 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42307391/

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