2015-08-24 158 views
2

有人請解釋下面的代碼有什麼問題?php affected_rows似乎不工作

<?php 
    $db=new mysqli('localhost', 'root','','apeirosto');   
    $query="UPDATE INBOX SET autodelete=1 WHERE messageid=129"; 
    $result=$db->query($query); 
    echo $result->affected_rows; 
?> 

表具有messageid作爲其主鍵和autodelete是它的領域之一。儘管UPDATE的一切都可以,但echo不會返回任何內容。同樣的問題發生在:

if ($result->affected_rows==0) 

總是返回true! 我不明白...

+0

拉動這是什麼呼應'回聲$ result-> affected_rows' –

+0

變化'如果($ result-> affected_rows == 0)''到如果($結果 - > affected_rows = 0)''''''你正在做的是說'$ result-> affected_rows'的值爲'0' – SuperDJ

+0

試試var_dump($ db-> error); –

回答

1

這不是如何affected_rows()工作。

你需要數據庫連接變量傳遞給它

$db->affected_rows; 

閱讀手冊http://php.net/manual/en/mysqli.affected-rows.php

面向對象的風格

INT $ mysqli-> affected_rows;

實施例從手動

$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 
... 
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50"); 
printf("Affected rows (UPDATE): %d\n", $mysqli->affected_rows); 
+1

就是這樣!謝謝 –

+0

@ILIAS你非常歡迎,*歡呼* –