好事多磨,但是連接資料庫出現一些問題,有時著實令人著火。
1.確認PDO開啟
PDO
的開啟必須在Windows環境下php 5.1以上版本。
在自己的環境內新建 test.php文件,內容如下:
<?php print phpinfo(); ?>
運作後能看見下圖,便說明已經開啟成功,直接轉至2。
若無法執行則開啟php.ini
設定文件,找到extension=php_pdo.dll
(設定php設定檔,開啟對應擴充) 和extension=php_pdo_mysql.dll
(開啟對應資料庫的擴充,以MySQL為例),去掉前面「;
」的註釋,修改後的兩行配置內容如下:
extension=php_pdo.dll extension=php_pdo_mysql.dll
完成後重新啟動apache
後即可。
2.資料庫連線問題
#連接到MySQL
<?php $dbh = new PDO('mysql:host=localhost;dbname=my_database', $user, $pass); ?>
注意:如果有任何連線錯誤,將拋出一個PDOException
例外物件。
b.處理連線錯誤
<?phptry { $dbh = new PDO('mysql:host=localhost;dbname=my_database', $user, $pass); foreach($dbh->query('SELECT * from student') as $row) { print_r($row); } $dbh = null;} catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die();} ?>
3.SQL語句本身有錯誤
<?php //实例化PDO对象 $pdo = new PDO('mysql:host=localhost;port=3306;dbname=my_database','root','root'); //写操作 $sql = "delete from student"; //错误SQL $rows = $pdo->exec($sql); //错误判定:exec方法执行结果成功也存在返回0的情况,错误会返回false,所以要判定是否是SQL错误,需要判定结果为false if(false === $rows){ //取出错误细信息 echo 'SQL错误:<br/>'; echo '错误代码为:' . $pdo->errorCode() . '<br/>'; echo '错误原因为:' . $pdo->errorInfo()[2]; //errorInfo返回数组,2下标代表错误具体信息 exit; //错误不需要继续执行代码 } ?>
語句問題可以連結#資料庫
,透過cmd命令列
或資料庫視覺化軟體(例如Navicat、phpMyAdmin
)確認語句問題。
以上是騎馬來的路上-PDO連線出錯的詳細內容。更多資訊請關注PHP中文網其他相關文章!