2014-05-24 127 views
-3

編輯: 第一個腳本得到沒有錯誤,只有一個白色的屏幕。 所以我測試了一段時間,這裏的結果。 (並學會了基本知識......)從PDO沒有連接到MySQL的PHP​​

Fatal error: Call to a member function rowCount() on a non-object in /var/www/tabelle/pizza/test_pdo3.php on line 11

首先是PDO版本,之後是一個沒有PDO的版本。

<?php 

//Connect 
$db = new PDO('mysql:host=localhost;dbname=;pizzadb3', 'auser', 'passw', 
array('charset'=>'utf8')); 

//Ausführen des Querys mit möglicher Fehlerbehandlung per try, catch 
$stmt = $db->query('select * from pizzeria_table'); 

//Anzahl ermitteln 
$row_count = $stmt->rowCount(); 

echo 'Anzahl: '.$row_count.'<br/>'; 

//Jeder Datensatz aus $stmt wird zur Ausgabe in ein temp-Array $row gespeichert 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    echo $row['laden_name'].'/'.$row['vorwahl'].'<br/>'; 
} 

?> 

這個版本做什麼做。

<?php 

//Connect 
$conn = mysql_connect('localhost', 'user', 'passw'); 
mysql_select_db('pizzadb3', $conn); 
mysql_set_charset('UTF-8', $conn); 

$sql = "select * from pizzeria_table"; 

//Ausführen des Statements und evtl. Fehlerbehandlung mit 'die' 
$result = mysql_query($sql) or die (mysql_error()); 

//Anzahl der Datensätze ermitteln 
$row_count = mysql_num_rows($result); 

echo 'Anzahl: '.$row_count.'<br/>'; 

//Jeder Datensatz aus $result wird zur Ausgabe in ein temp-Array $row gespeichert 
while($row = mysql_fetch_assoc($result)) { 
    echo $row['laden_name'].'/'.$row['vorwahl'].'<br/>'; 
} 

?> 

我該怎麼辦?

+0

你看着由PHP代碼生成的HTML代碼?你確定你應該看到什麼嗎?桌子上有內容嗎?你有沒有試過製作一個只包含核心功能的小程序,所以測試更容易?你試過什麼了? – jornane

+0

與一個小的測試文件,並沒有PDO一切正常。在大文件中,您可以看到一個按鈕和一個帶有一個單元的空表。我只是用PDO試着一個文件。 – gutschy

+0

打開PDO例外,[如此處所述](http://php.net/manual/en/pdo.error-handling.php)。 '$ dbh-> setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION);'然後看看你是否有任何錯誤。 –

回答

0

mysql:host=localhost;dbname=;pizzadb3

需要是:mysql:host=localhost;dbname=pizzadb3;

+1

嗨evan,非常感謝。 – gutschy