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

时间:2014-10-10 02:07:46

标签: php jquery mysql ajax

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

"
注意:尝试在 21,23,25 < C:\ xampplite \ htdocs \ edit.php 中获取非对象的属性登记/> 0&#34;

第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  |    

Update.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';
}
}

?>

2 个答案:

答案 0 :(得分:0)

您可能获得“1”,因为更新查询成功。这并不意味着它做了任何改变,只是它没有崩溃。

您可以通过检查

来检查受影响的记录
printf("Affected rows (Non-Select): %d\n", $mysqli->affected_rows);

答案 1 :(得分:0)

我只是编辑一些细节。我使用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';
}
}