前提:连接PDO需要在将php.ini配置文件的 ;extension=pdo_mysql,去掉前面的;号。
今天闲来无事就重新弄了一下PDO,结果怎么都连不上。而且没有给出错误的信息。代码如下:
<?php $dsn = 'mysql: dbname = shunk; host= localhost; port = 3306'; $username = 'root'; $password = 'root'; $sql = "select * from sk_menu where id =1"; try{ $db = new PDO($ds n, $username, $password); $info = $db->query($sql)->fetch(PDO::FETCH_ASSOC); var_dump($info); }catch (PDOException $e){ die( '连接错误'.$e->getMessage()); }
结果弄了很久都没有解决掉这个问题,对比了一下可以连接的代码,发现代码完全一样,可是就是连接不上,而且百度也没有找到相关的内容。
经过很多次的试验之后才发现原来
$dsn = 'mysql:dbname=shunk;host=localhost;port=3306';
$dsn这个字符串中的各内容是紧密连接的,中间不能有空格符相隔。不然就会报错,而且还不会报错