2011-02-10 114 views
1

我有以下腳本:PHP的MySQL,計算行

 
$queryUniqueEmail = "SELECT email FROM Applicant WHERE email = '".base64_encode($email)."';"; 
    $resultUniqueEmail = $db->query($queryUniqueEmail); 
    $resultRowsEmails = $resultUniqueEmail->numRows(); 
if($resultRowsEmails == 0) 
    $db->query($query); 
    } 
$resultRowsEmails->free(); 
} 
$db->close(); 
echo "Finish!"; 

基本上驗證一個電子郵件已經存在的數據庫,如果是插入操作被跳過。無論我在運行時遇到以下錯誤

PHP Fatal error: Call to undefined method mysqli_result::numRows() in /var/www/html/asd.php 

我該如何解決?

+0

它看起來像作爲跛腳數據庫避開功能,正確的的base64? ;-)無論如何,你沒有使用準備好的語句,所以使用mysqli錯誤的方式 –

+0

你是對的x 2 :)我從某種xml獲取的數據不是有效的xml,所以爲了避免我剛剛編碼的轉義麻煩BASE64。我使用的代碼不是我的,我只是試圖「維護」它。我個人不使用mysqli,因爲我的低OOP技能,我仍然使用舊的mysql方法。 – Michael

回答

2

mysqli_result類中沒有稱爲numRows的方法。

有一個屬性,num_rows

$resultRowsEmails = $resultUniquEmail->num_rows; 

http://php.net/manual/en/class.mysqli-result.php

+0

是的,你是對的,這是如此明顯,我沒有注意到它。但是現在我得到了PHP致命錯誤:調用一個非對象的成員函數free() – Michael

+1

@Michael,你在整數上調用'free()'。不應該是'$ resultUniqueEmail-> free()'? – binaryLV

+0

因爲您將它調用到包含大量行$ resultRowsEmails而不是結果對象$ resultUniqueEmail的變量上。 – singles