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,给定布尔值”的主要内容,如果未能解决你的问题,请参考以下文章

关于子查询进行装载产生的错误ora-12838

将同一列的今天和从今天开始的总数结合起来会产生一个 sql 查询

EXTENDED STATISTICS 对 PostgreSQL 中的 INSERT/UPDATE/DELETE 有影响吗?

表连接到底咋回事,就是产生中间结果啊!用于给select/insert等操作用

laravel 获取上一条insert语句产生的id

insert to一条记录到access中,数据库会自动产生一个自增长的ID,我想插入之后返回这个ID,请问如何做?