2016-10-11 139 views
-1

目前我正在學習PHP MYSQLi,PDO,並仍然有困難,一些基本語句也困惑..我試圖檢查一個電子郵件是否已經存在於我的數據庫,然後再存儲它但是當我測試它時,似乎我的代碼不工作。我錯過了什麼,或者我需要修改我的代碼..?php mysqli查詢語句和檢查受影響的行

$mysqli = mysqli_connect("localhost", "root", "", "mydbname"); 

    if (!$mysqli) { 
     echo "Error: Unable to connect to MySQL." . PHP_EOL; 
     echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; 
     echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; 
     exit; 
    } 

    $email="[email protected]"; 

    $username_query = "SELECT username FROM user WHERE email = ?"; 
    $statement = $mysqli->prepare($username_query); 
    $statement->bind_param('s', $email); 

    $statement->execute(); 
    $statement->store_result(); 

現在,我想知道,如果連續被影響。在我的數據庫中有 [email protected]的記錄,但結果總是顯示0. $ mysqli-> affected_rows也不適用於我..請賜教,謝謝。

printf("row affected: %d.\n", $statement->num_rows); 
+0

使用此''statement-> affected_rows'獲取受影響的行數 – FullStack

+0

'printf(「受影響的行:%d。\ n」,$ statement-> affected_rows);' – FullStack

+0

man!我沒有看到!它現在工作!非常感謝@dass! – user1957878

回答

-1

你需要獲取結果。

$statement->store_result();

$statement -> fetch();

0

兩個num_rowsaffected_rows都獲得通過SELECT查詢中找到的行數的方式(給出的查詢確實發現了一些和使用get_result()/store_result()

每個人都可以運行以下代碼並參見

$email="[email protected]"; 

$statement = $mysqli->prepare("SELECT ?"); 
$statement->bind_param('s', $email); 
$statement->execute(); 
$statement->store_result(); 

echo "affected_rows: $statement->affected_rows\n"; 
echo "num_rows: $statement->num_rows\n"; 

因此,這個問題是由某種混淆造成的。

所以,請讓我們不要讓它成爲另一個迷信的來源。

相關問題