Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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
Php 在成功的查询中获取fetch_object()错误_Php_Mysql - Fatal编程技术网

Php 在成功的查询中获取fetch_object()错误

Php 在成功的查询中获取fetch_object()错误,php,mysql,Php,Mysql,我得到了这个错误: Fatal error: Call to a member function fetch_object() on a non-object in C:\.....php on line 136 代码如下: if ($result = $mysqli->query("INSERT INTO partlistlist ( P_fam , P_code , P_name, P_var , P_ver , P_lnk , P_fol , P_Notes , P_status

我得到了这个错误:

Fatal error: Call to a member function fetch_object() on a non-object in C:\.....php on line 136
代码如下:

if ($result = $mysqli->query("INSERT INTO partlistlist ( P_fam , P_code , P_name, P_var , P_ver , P_lnk , P_fol , P_Notes , P_status , P_op ) VALUES ( \"".$mod_fam ."\", \"".$mod_code ."\", \"".$mod_name ."\", \"".$mod_var  ."\", 1 , \"".$mod_lnk  ."\", \"".$mod_fold ."\", \"".$mod_note     ."\", \"".$mod_stat ."\", \"".  $_SESSION['wh_pwd_usr']."\"  ) "));
{
    echo "<br>Articolo creato con successo";
    $created_id = $mysqli->insert_id;
    if (!$result = $mysqli->query("SELECT * FROM partlistlist WHERE P_id = $created_id LIMIT 1"))
        echo "Error";
    $row = $result->fetch_object();
    $P_id = $created_id;

    if (!$result_clonepart = $mysqli->query("SELECT * FROM partlist WHERE K_pid = $old_P_id"))
    {
        echo "Error";
    }
    else
    {
        if ($result_clonepart->num_rows > 0)
        {
            while ($row_clonepart = $result_clonepart->fetch_object())
            {
                if (!$result_clonepart = $mysqli->query("INSERT INTO partlist ( K_ref ,K_pid ,K_iid ,K_qty ,K_subpid, K_stat ) VALUES ( \"".$row_clonepart->K_ref      ."\" ,\"". $P_id    ."\" ,\"".$row_clonepart->K_iid     ."\" ,\"".$row_clonepart->K_qty     ."\" ,\"".$row_clonepart->K_subpid   ."\" ,\"".$row_clonepart->K_stat       ."\")"))
                    echo "Error";
            }


        }
    }
}

如果num\u rows检查良好,$result\u clonepart怎么可能不是对象?

在while循环中,您正在重新分配
$result\u clonepart
(您可能不想做的事情)。如果该查询失败,脚本将停止并出现致命错误

使用不同的变量名(如果您不想使用相同的变量名)或在失败时中断循环(如果您有意重新分配)


如果在执行后打印
$result\u clonepart
,您会得到什么<代码>模具(变量转储($result\u clonepart))对象(mysqli_结果)#3(5){[“当前_字段”]=>int(0)[“字段计数”]=>int(8)[“长度”]=>NULL[“num_行”]=>int(1)[“类型”]=>int(0)}这看起来非常不安全。您确定您的用户参数正确吗?使用
mysqli
时,您应该使用参数化查询,并将用户数据添加到查询中。不要使用字符串连接来实现这一点,因为您将创建严重的。实际上,这永远不会出现在internet上,它只是一个本地管理网站-顺便说一句,它们被转义并经过非常仔细的检查(据我所知(这并不多))@SimoneApprendista,只要您使用的是
mysqli_real_escape_string
trim
并根据正则表达式验证它们。在不使用参数化查询的情况下,应对sql查询提供良好的保护。
while ($row_clonepart = $result_clonepart->fetch_object())
while ($row_clonepart = $result_clonepart->fetch_object()) {
  //     VVVVVVVVVVV     Here is the reassignment
  if (!$result_clonepart = $mysqli->query("INSERT INTO partlist ( K_ref ,K_pid ,K_iid ,K_qty ,K_subpid, K_stat ) VALUES ( \"".$row_clonepart->K_ref      ."\" ,\"". $P_id    ."\" ,\"".$row_clonepart->K_iid     ."\" ,\"".$row_clonepart->K_qty     ."\" ,\"".$row_clonepart->K_subpid   ."\" ,\"".$row_clonepart->K_stat       ."\")"))
      echo "Error";
      //You could insert a break statement if you are reassigning the variable intentionally
}