Good things come hard, but there are some problems connecting to the database, which sometimes makes people angry.
1. Confirm that PDO is turned on
PDO must be turned on in php 5.1 or above version under Windows environment.
<?php print phpinfo(); ?>
php.ini configuration file and find
extension=php_pdo.dll(configuration php configuration file, Turn on the corresponding extension) and
extension=php_pdo_mysql.dll (turn on the extension to the corresponding database, take MySQL as an example), remove the previous "
;" comment, and modify the two lines of configuration The content is as follows:
extension=php_pdo.dll extension=php_pdo_mysql.dll
apache.
2. Database connection problem
MySQL
<?php $dbh = new PDO('mysql:host=localhost;dbname=my_database', $user, $pass); ?>
PDOException exception object will be thrown.
<?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. There are errors in the SQL statement itself
<?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; //错误不需要继续执行代码 } ?>
database , confirm the statement problem through the
cmd command line or database visualization software (such as
Navicat, phpMyAdmin).
php tutorial,php video tutorial
The above is the detailed content of On the way here on horseback - PDO connection error. For more information, please follow other related articles on the PHP Chinese website!