騎馬來的路上-PDO連線出錯

autoload
發布: 2023-04-09 19:36:01
原創
2969 人瀏覽過

好事多磨,但是連接資料庫出現一些問題,有時著實令人著火。

  1.確認PDO開啟

     PDO的開啟必須在Windows環境下php 5.1以上版本。

    在自己的環境內新建 test.php文件,內容如下:

<?php
 print phpinfo();
?>
登入後複製

    運作後能看見下圖,便說明已經開啟成功,直接轉至2。

騎馬來的路上-PDO連線出錯

    若無法執行則開啟php.ini設定文件,找到extension=php_pdo.dll(設定php設定檔,開啟對應擴充) 和extension=php_pdo_mysql.dll (開啟對應資料庫的擴充,以MySQL為例),去掉前面「;」的註釋,修改後的兩行配置內容如下:

extension=php_pdo.dll
extension=php_pdo_mysql.dll
登入後複製

     完成後重新啟動apache後即可。

  2.資料庫連線問題

  1. #連接到MySQL

<?php
   $dbh = new PDO(&#39;mysql:host=localhost;dbname=my_database&#39;, $user, $pass);
?>
登入後複製

          注意:如果有任何連線錯誤,將拋出一個PDOException 例外物件。

      b.處理連線錯誤

<?phptry {
    $dbh = new PDO(&#39;mysql:host=localhost;dbname=my_database&#39;, $user, $pass);
    foreach($dbh->query(&#39;SELECT * from student&#39;) as $row) {
        print_r($row);
    }
    $dbh = null;} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();}
?>
登入後複製

   3.SQL語句本身有錯誤

<?php
//实例化PDO对象
$pdo = new PDO(&#39;mysql:host=localhost;port=3306;dbname=my_database&#39;,&#39;root&#39;,&#39;root&#39;);

//写操作
$sql = "delete from student";		//错误SQL
$rows = $pdo->exec($sql);

//错误判定:exec方法执行结果成功也存在返回0的情况,错误会返回false,所以要判定是否是SQL错误,需要判定结果为false
if(false === $rows){
    //取出错误细信息
    echo &#39;SQL错误:<br/>&#39;;
    echo &#39;错误代码为:&#39; . $pdo->errorCode() . &#39;<br/>&#39;;   
    echo &#39;错误原因为:&#39; . $pdo->errorInfo()[2];		
    //errorInfo返回数组,2下标代表错误具体信息          
    exit;		                                    
    //错误不需要继续执行代码
}
?>
登入後複製

    語句問題可以連結#資料庫,透過cmd命令列或資料庫視覺化軟體(例如Navicat、phpMyAdmin)確認語句問題。

推薦:php教學,php影片教學

#

以上是騎馬來的路上-PDO連線出錯的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
pdo
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板