INSERT 查询产生“警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,给定布尔值”
Posted
技术标签:
【中文标题】INSERT 查询产生“警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,给定布尔值”【英文标题】:INSERT query produces "Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given" 【发布时间】:2013-11-08 17:22:52 【问题描述】:我对收到以下消息的原因感到困惑:
mysqli_num_rows() 期望参数 1 为 mysqli_result,给定布尔值
这个问题与以前的查询不同,因为我的查询实际上正确执行(确实已将值输入到数据库中)。所以,我希望 MySQL 返回一个结果集而不是一个布尔值。
以下是我的功能:
function join_main_newsletter($firstName = null, $email)
global $dbc;
$valuesEntered = "values entered";
$insert = "INSERT INTO newsletter (first_name, email ) VALUES ('name', 'testemail@yahoo.com')";
$R3 = mysqli_query($dbc, $insert) or trigger_error("Query Failed! SQL: $sql - Error: " . mysqli_error(db_conx), E_USER_ERROR);
if (mysqli_num_rows($R3) == 1)
return $valueentered;
else
这是错误的部分结果:
[valuesEntered] => values entered
[insert] => INSERT INTO newsletter (first_name, email )
VALUES ('name', 'testemail@yahoo.com')
[R3] => 1
【问题讨论】:
这是不同的。我的查询有效;即值正在输入数据库。所以,我的查询没有错误 【参考方案1】:使用mysqli_affected_rows()
- 受最后一个 INSERT、UPDATE、REPLACE 或 DELETE 查询影响的行数。
【讨论】:
什么可能是什么原因? 这应该是什么结果?如果mysqli_num_rows()
首先失败,因为它是 INSERT
,而不是 SELECT
,那么您的代码将毫无帮助。【参考方案2】:
mysqli_num_rows()
函数返回结果集中的行数。对于插入、更新和删除使用mysqli_affected_rows
【讨论】:
【参考方案3】: mysql_num_rows ( resource $result )
从结果集中检索行数。此命令仅对返回实际结果集的 SELECT 或 SHOW 等语句有效。要检索受 INSERT、UPDATE、REPLACE 或 DELETE 查询影响的行数,请使用 . mysql_affected_rows()
喜欢
if(mysql_affected_rows())
return $valueentered ;
else
false;
【讨论】:
以上是关于INSERT 查询产生“警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,给定布尔值”的主要内容,如果未能解决你的问题,请参考以下文章
将同一列的今天和从今天开始的总数结合起来会产生一个 sql 查询
EXTENDED STATISTICS 对 PostgreSQL 中的 INSERT/UPDATE/DELETE 有影响吗?