2013-03-06 77 views
0

我嘗試使用下面的代碼簡單地得到一個MySQL表中的所有數據:如何從使用php的mysql中的單個表中獲取所有數據?

$dbc = mysqli_connect('host', 'user', 'password', 'table'); 
$q = 'SELECT * FROM users'; 
$r = mysqli_query($dbc, $q); 

$user_array = array(); 
    while ($row = mysql_fetch_array($r)) 
     { 
     $user_array[]=$row; 
     } 
    echo "<br />"; 
    echo "print r of user_array: <br />"; 
    print_r($user_array); 

我得到什麼。我看了這個教程(http://www.w3schools.com/php/php_mysql_select.asp)等,但他們所做的只是讓我困惑。

我在做什麼錯?

+1

W3Schools教程通常被認爲質量低下,有時鼓勵不好的做法。我建議堅持使用[官方MySQLi文檔](http://us3.php.net/manual/en/book.mysqli.php)中的示例。 – 2013-03-06 04:10:47

+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – 2013-03-12 15:53:11

回答

2

嘗試改變這種

mysql_fetch_array($r) 

mysqli_fetch_array($r) 
+0

您的用戶表已填充,對嗎? – ElefantPhace 2013-03-06 04:19:10

+0

是的。我愚蠢的錯字。對這個愚蠢的問題抱歉。 – dwstein 2013-03-06 04:25:10

2

您已通過的程序庫MySQLi API(mysqli_connect())連接,但您正在嘗試使用舊mysql_fetch_array()從舊mysql_*() API。它們不兼容。

您需要通過mysqli_fetch_array()mysqli_fetch_assoc()取代。 mysqli_fetch_assoc()建議,除非你真的需要除了列名數字鍵輸出$row

// Check for errors. 
if ($r) { 
    while ($row = mysqli_fetch_assoc($r)) { 
    $user_array[] = $row; 
    } 
} 
else echo mysqli_error($dbc); 

什麼你與現在的工作是不帶任何參數,只是一個SELECT *沒有WHERE條款的簡單查詢。將來,當您開始添加WHERE條件時,您需要開始閱讀關於準備好的陳述和mysqli::prepare()

相關問題