好事多磨,但是连接数据库出现一些问题,有时着实令人着火。
  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.dllextension=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错误,需要判定结果为falseif(false === $rows){    //取出错误细信息    echo 'sql错误:<br/>';    echo '错误代码为:' . $pdo->errorcode() . '<br/>';       echo '错误原因为:' . $pdo->errorinfo()[2];		    //errorinfo返回数组,2下标代表错误具体信息              exit;		                                        //错误不需要继续执行代码}?>
语句问题可以通过连接数据库,通过cmd命令行或者数据库可视化软件(例如navicat、phpmyadmin)确认语句问题。
推荐:php教程,php视频教程
以上就是骑马来的路上——pdo连接出错的详细内容。
   
 
   