正在尝试获取Console.log中非对象的属性


Trying to get property of non-object in Console.log

这里有两个不同的查询。第一个查询针对具有相同item_code的两个表,第二个表仅针对具有item代码的表1。我添加console.log来在另一个页面上运行脚本。我的代码的过程是,如果第一个查询(针对两个表的查询)未能执行,则执行第二个查询(仅针对表1的查询)。两个查询都正确执行,但我在console.log上收到了这个错误。

"
注意:试图获取C:''exampleplite''htdocs''edit.php中非对象的属性第21,23,25
行0"

第21、23和25行的错误是我的if-else语句。我需要获取console.log 1

为什么?

任何帮助都将不胜感激。

两张表都有项目代码A000321

table 1     |   table 2
            |
item_code   |  item_code
------------|--------------
   A000321  |    A000321

只有表1的项目代码为A000321

table 1     |   table 2
            |
item_code   |  item_code
------------|--------------
   A000321  |    

更新.php

<?php
$val1_id= $_POST['val1_id'];
$val1_item_copy= $_POST['val1_item_copy'];
$val1_catcode= $_POST['val1_catcode'];
$val1_itemcode= $_POST['val1_itemcode'];
$sql = $mysqli->query("
UPDATE  code t1
INNER JOIN
        app t2
ON      t2.item_code= t1.item_code
SET     t1.item = '$val1_item_copy',t2.item_name = '$val1_item_copy'
WHERE   t1.item_code = '$val1_itemcode' AND t1.cat_code = '$val1_catcode';
")or die('There was an error running the query [' . $mysqli->error . ']');
if(($sql->num_rows)>= 1){
echo '1';
} else if(($sql->num_rows) == 0) {
$sql1 = $mysqli->query("UPDATE code SET item='$val1_item_copy' WHERE id='$val1_id'")or die('There was an error running the query [' . $mysqli->error . ']');
if(($sql1->num_rows)>= 1){
echo '1';
} else {
echo '0';
}
}
?>

由于更新查询成功,您可能会得到"1"。这并不意味着它做了任何改变,只是它没有崩溃。

您可以通过检查来检查受影响的记录

printf("Affected rows (Non-Select): %d'n", $mysqli->affected_rows);

我只是编辑了一些细节。我用了if($mysqli->affected_rows >= 1)而不是if(($sql->num_rows)>= 1)

if($mysqli->affected_rows >= 1) {
echo '1';
} else {
$sql1 = $mysqli->query("UPDATE code SET item='$val1_item_copy' WHERE id='$val1_id'")or die('There was an error running the query [' . $mysqli->error . ']');
if($mysqli->affected_rows >= 1) {
echo '1';
} else {
echo '0';
}
}