良いことは難しいことですが、データベースへの接続にいくつかの問題があり、それが人々を怒らせることもあります。
1. PDO がオンになっていることを確認します。
PDO は、Windows 環境の php 5.1 以降のバージョンでオンになっている必要があります。
<?php print phpinfo(); ?>実行後、下の図が表示されます。これは、ファイルが正常に開かれたことを意味します。 2. 実行できない場合は、
php.ini 構成ファイルを開いて、
extension=php_pdo.dll(configuration php 構成ファイル、対応する拡張機能をオンにします) および
extension=php_pdo_mysql.dll (対応するデータベースの拡張機能をオンにします。MySQL を例にします)、前の "
;" コメントを削除しますを実行し、設定の 2 行を変更します。内容は次のとおりです。
extension=php_pdo.dll extension=php_pdo_mysql.dll完了後、
apache を再起動します。
<?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();} ?>
<?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
など) を使用してステートメントの問題を確認します。 推奨:
php チュートリアル、
以上が馬に乗ってここに来る途中 - PDO 接続エラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。