問題:-)顯示使用PHP PDO
我想我的MySQL查詢語法轉換成PDO,但有一些問題的入門MySQL的SELECT語句。
我在我的頁面中有一個名爲dbc.php的包含文件。包含代碼:
define ("DB_HOST", "localhost"); // set database host
define ("DB_USER", "dbuser"); // set database user
define ("DB_PASS","dbpass"); // set database password
define ("DB_NAME","dbname"); // set database name
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");
$db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database");
我的網頁代碼則是:
<?php
include 'dbc.php';
page_protect();
function get_users($db) {
$getusers = $db->query('SELECT employeeid, fullname FROM Persons order by fullname asc');
}
?>
我想顯示用下面的代碼表輸出:
<table>
<tr>
<th> Full Name</th>
</tr>
<?
while($row = $getusers->fetch(PDO::FETCH_ASSOC))
{
?>
<tr>
<td>
<?
echo $row['fullname'];
?>
</td>
</tr>
<?
}
?>
</table>
這目前輸出錯誤:
Fatal error: Call to a member function fetch() on a non-object in /home/she/public_html/versionfour/people.php on line 170
170行是我的'while($ row = $ getusers-> fetch(PDO :: FETCH_ASSOC))'語句。
我知道我錯過了一些簡單的東西,可能還沒有完全理解PDO。
任何幫助apprecaited。
感謝和問候, [R
謝謝@Alex。快速的問題,我明白PDO可以顯示數據庫連接細節,如果它失敗。我已經添加了'$ db = new PDO('mysql:host = localhost; dbname = she_she',$ username,$ password);'到我的dbc.php。我需要對'異常'進行任何修改嗎?再次感謝。 – Smudger
@Smudger沒問題,很高興我能幫到你。在某些情況下,您必須擁有有效的結果,因爲您依賴該結果才能正確執行其餘代碼。當它來到數據庫連接(就像你的情況),你必須*總是*假設他們會出錯並相應地編碼。看看* try/catch語句*這些是讓我們*優雅地降級* – AlexP
謝謝@亞馬遜,非常感謝。 – Smudger