PHP通过pdo链接mysql
2016-09-20 10:29
363 查看
php7.0,不支持mysql_系列函数,支持mysqli和pdo,更推荐的是pdo!
将项目中的安装文件的mysql_系列函数,升级为pdo函数的过程中,看了看pdo的操作文档。
1.我们都知道,首先得链接数据库成功,使用mysql很简单:
mysql_connect('127.0.0.1:3306', 'root', 'root'),if判断返回值即可。
而pdo链接,正确返回一个pdo对象,错误则会抛出个pdo异常,得使用:
try{
$link = new PDO($dsn, $user, $password);
}catch(DPOException $e){
echo $e->getMessage();
}
2.针对pdo的dsn的问题,纠结了好久。。
先说下dsn的格式:
dsn前缀:例如:'mysql:'
host:'127.0.0.1'
port:'3306'// 默认可不写
dbname:‘test'// 数据库
unix_socket:mysql的socket文件(/tmp/mysql.sock),不可同host&port方式一起使用
charset:// 5.3.6以后新增,字符集,默认是utf-8
上面就是所有的参数格式,这里得强调下,查看手册,发现所有的例子,dsn中都包含了dbname这个参数,让我很纠结了半天,以为pdo的链接必须有dbname。对于初始应用的安装,我们需要的是创建一个新的数据库,开始并不存在。所以我就想了 "每个mysql安装后,都应该有个test数据库",所以,dsn中就是 "dbname=test",然后在连接成功后,创建好数据库,再使用 "use mydb" 切换为新创建的数据库,然后创建表!
------------------------------------------------------------------------------------------------------------
想法有点天真。。。有的用户可能直接删除了test数据库!第二天负责人说了下,它测试了下没有dbname也可以链接成功,我居然都不懂得去测测。。。。。对自己也是无语了。。。。。这才认真的去找了下手册,别人的评论,确实有个人说了:
所以,dbname是可选的!!
最后,再分析下dsn参数支持的3种不同的方式:
1.就是我们最常用的 "驱动调用方式",就是上面的
2.URI调用方式(一个uri定位的文件,文件中包含的就是dsn的字符串),可本地或远程文件。必须有 'uri:' 前缀
uri:file://url
3.别名方式,我们可在php.ini文件中定义,明确说明,不可在.htaccess 或 httpd.conf中调用
[pdo]
pdo.dsn.mydb="mysql:dbname=test;host=localhost"
new PDO('mydb', 'root', 'root);
将项目中的安装文件的mysql_系列函数,升级为pdo函数的过程中,看了看pdo的操作文档。
1.我们都知道,首先得链接数据库成功,使用mysql很简单:
mysql_connect('127.0.0.1:3306', 'root', 'root'),if判断返回值即可。
而pdo链接,正确返回一个pdo对象,错误则会抛出个pdo异常,得使用:
try{
$link = new PDO($dsn, $user, $password);
}catch(DPOException $e){
echo $e->getMessage();
}
2.针对pdo的dsn的问题,纠结了好久。。
先说下dsn的格式:
dsn前缀:例如:'mysql:'
host:'127.0.0.1'
port:'3306'// 默认可不写
dbname:‘test'// 数据库
unix_socket:mysql的socket文件(/tmp/mysql.sock),不可同host&port方式一起使用
charset:// 5.3.6以后新增,字符集,默认是utf-8
上面就是所有的参数格式,这里得强调下,查看手册,发现所有的例子,dsn中都包含了dbname这个参数,让我很纠结了半天,以为pdo的链接必须有dbname。对于初始应用的安装,我们需要的是创建一个新的数据库,开始并不存在。所以我就想了 "每个mysql安装后,都应该有个test数据库",所以,dsn中就是 "dbname=test",然后在连接成功后,创建好数据库,再使用 "use mydb" 切换为新创建的数据库,然后创建表!
------------------------------------------------------------------------------------------------------------
想法有点天真。。。有的用户可能直接删除了test数据库!第二天负责人说了下,它测试了下没有dbname也可以链接成功,我居然都不懂得去测测。。。。。对自己也是无语了。。。。。这才认真的去找了下手册,别人的评论,确实有个人说了:
所以,dbname是可选的!!
最后,再分析下dsn参数支持的3种不同的方式:
1.就是我们最常用的 "驱动调用方式",就是上面的
2.URI调用方式(一个uri定位的文件,文件中包含的就是dsn的字符串),可本地或远程文件。必须有 'uri:' 前缀
uri:file://url
3.别名方式,我们可在php.ini文件中定义,明确说明,不可在.htaccess 或 httpd.conf中调用
[pdo]
pdo.dsn.mydb="mysql:dbname=test;host=localhost"
new PDO('mydb', 'root', 'root);
相关文章推荐
- zhphp framework (十二) 数据链接层,首先pdo,其次mysqli,再次mysql接口
- php链接msql以及myql,mysqli,mysqlnd,mysqlpdo 的关系与说明
- php通过Mysqli和PDO连接mysql数据详解
- PHP与Mysql通过PDO交互时在浏览器中产生乱码的解决方法
- php PDO 链接 mysql 最简单 实例
- php通过Mysqli和PDO连接mysql数据详解
- PHP PDO MySql 链接数据库公用文件i_conn.php
- Android 通过php链接Mysql
- PHP+MySQL微信通过jsapi分享到朋友圈等平台,实现设置图片、链接。
- php通过Mysqli和PDO连接mysql数据详解
- php与mysql的链接到底用mysql 还是mysqli,pdo
- php通过PDO连接mysql与sqlserver
- PHP之设计模式—建造者模式(通过选择mysql,mongo数据库链接类型做说明)
- php 链接 mysql 数据库
- MYSQL与PHP链接,前台显示编码正常,后台乱码
- SQL server 通过链接服务器连接Mysql
- 测试php是使用pdo方式连接mysql
- 关于通过php获取mysql表里的字段名的方法的整理
- php和mysql链接的配置和测试