좋은 일은 힘들지만 데이터베이스에 연결하는 데 문제가 있어 때로는 정말 짜증날 수 있습니다.
1. PDO가 활성화되어 있는지 확인하세요.
Windows 환경의 php 5.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
rrreee 실행한 후 아래 그림을 보면 성공적으로 열렸다는 의미입니다. 2.
실행할 수 없는 경우php.ini
구성 파일을 열고 extension=php_pdo.dll
을 찾으세요(php 구성 파일을 구성하고 해당 확장자) 및 extension=php_pdo_mysql.dll (해당 데이터베이스에 대한 확장자 활성화, MySQL을 예로 들어), 이전 ";
" 주석을 제거하고, 수정된 두 개 구성 내용 줄은 다음과 같습니다. 🎜 rrreee🎜 완료 후 apache
를 다시 시작합니다. 🎜🎜🎜 2. 데이터베이스 연결 문제🎜🎜MySQL
에 연결🎜PDOException
예외 개체가 발생합니다. 데이터베이스
에 연결하고 를 통해 해결할 수 있습니다. cmd 명령줄
또는 데이터베이스 시각화 소프트웨어(예: Navicat, phpMyAdmin
)를 사용하여 명령문 문제를 확인하세요. 🎜🎜추천: 🎜php 튜토리얼, 🎜🎜php 비디오 튜토리얼🎜🎜위 내용은 말을 타고 여기로 오는 중 - PDO 연결 오류의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!