2009-05-04 17 views
1

我在學習php pdo;我的環境是:NetBeans 6.5.1,XAMPP 1.7.0和我有這個代碼,它似乎連接。php pdo¿我在做什麼錯?

  • 如果我改變DBNAME到一個不存在的一個,它會引發異常「分貝不存在」
  • 如果我更改用戶,它提出了「登錄不正確」)

但是當我調用$ CN->查詢,它提出:發生在apache.exe

的未處理的win32異常我做錯了什麼?

$hostname = 'localhost'; 
$username = 'crb'; 
$password = 'letmein'; 
try { 
    $cn = new PDO("mysql:host=$hostname;dbname=bitacora", $username, $password); 
    echo 'Connected to database<br />'; 
    $sql = "SELECT * FROM usuario WHERE login = '".$login."' AND clave = '".$clave."'"; 
    // Error here 
    foreach ($cn->query($sql) as $row) { 
     print $row['login'] .' - '. $row['clave'] . '<br />'; 
    } 
} catch (PDOException $e) { 
    echo $e->getMessage(); 
} catch (Exception $e) { 
    echo $e->getMessage(); 
} 

回答

0

是$ cn有效嗎?檢查返回值。到目前爲止,你所描述的並不能說服你連接。

+0

在NetBeans調試手錶中說它是對象,我還應該檢查什麼? – 2009-05-04 15:38:15

0

如果你還沒有,我會確保你的環境正常工作。

  1. 檢查以確保用戶使用MySQL本身(使用類似mysqlquery的東西)。
  2. 檢查以確保php可以連接到MySQL。我在所有新設置上安裝phpmyadmin(即使我不保留它)以確保我有良好的工作連接。
  3. 讓PDO通過錯誤例外(請參閱http://us2.php.net/manual/en/pdo.error-handling.php)查看錯誤發生的位置。

我的猜測是,你沒有連接到MySQL,這將解釋無法更改數據庫。