mysql5.0 php_php怎么连接mysql5.0?

PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案。

PHP的MySQL扩展是设计开发允许php应用与MySQL数据库交互的早期扩展。MySQL扩展提供了一个面向过程的接口,并且是针对MySQL4.1.3或者更早版本设计的。因此这个扩展虽然可以与MySQL4.1.3或更新的数据库服务端进行交互,但并不支持后期MySQL服务端提供的一些特性。由于太古老,又不安全,所以已被后来的mysqli完全取代;

PHP的mysqli扩展,我们有时称之为MySQL增强扩展,可以用于使用 MySQL4.1.3或更新版本中新的高级特性。其特点为:面向对象接口 、prepared语句支持、多语句执行支持、事务支持 、增强的调试能力、嵌入式服务支持 、预处理方式完全解决了sql注入的问题。不过其也有缺点,就是只支持mysql数据库。如果你要是不操作其他的数据库,这无疑是最好的选择。

PDO是PHP Data Objects的缩写,是PHP应用中的一个数据库抽象层规范。PDO提供了一个统一的API接口可以使得你的PHP应用不去关心具体要连接的数据库服务器系统类型,也就是说,如果你使用PDO的API,可以在任何需要的时候无缝切换数据库服务器,比如从Oracle 到MySQL,仅仅需要修改很少的PHP代码。其功能类似于JDBC、ODBC、DBI之类接口。同样,其也解决了sql注入问题,有很好的安全性。不过他也有缺点,某些多语句执行查询不支持(不过该情况很少)。

1.PHP与Mysql扩展(本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除),PHP原生的方式去连接数据库,是面向过程的

$mysql_conf=array(

'host'=>'127.0.0.1:3306',

'db'=>'test',

'db_user'=>'root',

'db_pwd'=>'root',

);

$mysql_conn= @mysql_connect($mysql_conf['host'],$mysql_conf['db_user'],$mysql_conf['db_pwd']);

if(!$mysql_conn) {

die("could not connect to the database:\n". mysql_error());//诊断连接错误

}

mysql_query("set names 'utf8'");//编码转化

$select_db= mysql_select_db($mysql_conf['db']);

if(!$select_db) {

die("could not connect to the db:\n".  mysql_error());

}

$sql="select * from user;";

$res= mysql_query($sql);

if(!$res) {

die("could get the res:\n". mysql_error());

}

while($row= mysql_fetch_assoc($res)) {

//phpfensi.com

print_r($row);

}

mysql_close($mysql_conn);

?>

2.PHP与Mysqli扩展,面向过程、对象

$mysql_conf=array(

'host'=>'127.0.0.1:3306',

'db'=>'test',

'db_user'=>'root',

'db_pwd'=>'joshua317',

);

$mysqli= @newmysqli($mysql_conf['host'],$mysql_conf['db_user'],$mysql_conf['db_pwd']);

if($mysqli->connect_errno) {

die("could not connect to the database:\n".$mysqli->connect_error);//诊断连接错误

}

$mysqli->query("set names 'utf8';");//编码转化

$select_db=$mysqli->select_db($mysql_conf['db']);

if(!$select_db) {

die("could not connect to the db:\n".$mysqli->error);

}$sql="select uid from user where name = 'joshua';";

$res=$mysqli->query($sql);

if(!$res) {

die("sql error:\n".$mysqli->error);

}

while($row=$res->fetch_assoc()) {

var_dump($row);

}

$res->free();

$mysqli->close();

?>

2.PHP与PDO扩展,面向过程、对象

$mysql_conf=array(

'host'=>'127.0.0.1:3306',

'db'=>'test',

'db_user'=>'root',

'db_pwd'=>'joshua317',

);

$pdo=newPDO("mysql:host=".$mysql_conf['host'] .";dbname=".$mysql_conf['db'],$mysql_conf['db_user'],$mysql_conf['db_pwd']);//创建一个pdo对象

$pdo->exec("set names 'utf8'");

$sql="select * from user where name = ?";

$stmt=$pdo->prepare($sql);

$stmt->bindValue(1,'joshua', PDO::PARAM_STR);

$rs=$stmt->execute();

if($rs) {

// PDO::FETCH_ASSOC 关联数组形式

// PDO::FETCH_NUM 数字索引数组形式

while($row=$stmt->fetch(PDO::FETCH_ASSOC)) {

var_dump($row);

}

}

$pdo= null;//关闭连接

?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android----Google code android开源项目(四)

Google code android开源项目(四) 1. sparserss http://code.google.com/p/sparserss/ 一个简洁的android rss阅读器 2. desktopsms http://code.google.com/p/desktopsms/ 在电脑写短信 3. kraigsandroid http://code.google.com/p/kraigsandroid/ 创建者…

面试题之--实现取余

def quyu(shu,chushu):if shuchushu:print(余数是0)elif shu<chushu:print(余数是&#xff1a;%s%shu)elif chushu0:print(除数不能为0)else:for i in range(0,shu):if shu-i*chushu>chushu:i1elif shu-i*chushuchushu:print(余数是0)breakelif shu-i*chushu0:print(余数…

全国计算机等级考试题库二级C操作题100套(第22套)

第22套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;将自然数1&#xff5e;10以及它们的平方根写到名为myfile3.txt的文本文件中&#xff0c;然后再顺序读出显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除&#xff0c;使程序得出正确的结…

mysql可能锁的表命令_mysql 默许是表级锁一些不太常用命令

mysql 默认是表级锁一些不太常用命令1&#xff0c;mysql默认的是表级锁。如果是启用InnoDB存储引擎那么该数据库支持行级锁。2&#xff0c;查看数据库是否支持innodb的命令SHOW variables like "have_%";另一条命令SHOW ENGINES;更为准确。查看mysql数据库的详细信息…

python制作二级菜单_Python_简单三级菜单制作

一:制作要求 1.三级菜单  2.可依次选择进入各子菜单  3.所需新知识点:字典,列表 *本文通过三种方法完成,第一种:只使用循环,第二种:使用列表,第三种:使用字典 二:FlowChart流程图与上图对应,实现方式图解:while用来判断输入的数据和允许输入数据中的哪一项匹配,if来进行判断…

RSA使用简述

RSA协议我不再描述&#xff0c;大家可以看http://www.di-mgt.com.au/rsa_alg.html。 RSA的密钥对生成时间依赖于两个因素&#xff0c; 第一&#xff0c;密钥的长度 第二&#xff0c;素数的筛选质量 在整个密钥对生成过程中&#xff0c;RSA会随机选择两个大素数&#xff0c;事实…

64位进程和32位进程通信问题,接收端收不到 SendMessage发送的消息

最近在做一个项目的时候&#xff0c;采用了win32的SendMessage方法来发送数据&#xff0c;本来都没问题&#xff0c;后来增加了一个项目&#xff0c;必须采用的目标平台是x64的&#xff0c;没想到居然没办法通信了。 网上找了很久解决方案&#xff0c;整整尝试了一个周&#xf…

全国计算机等级考试题库二级C操作题100套(第23套)

第23套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;找出NN矩阵中每列元素中的最大值&#xff0c;并按顺序依次存放于形参b所指的一维数组中。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意&#xff1a;源程序存放在考生…

html5 js

2019独角兽企业重金招聘Python工程师标准>>> http://labs.hyperandroid.com/mathmayhem 转载于:https://my.oschina.net/u/201125/blog/100934

初入职场的工作感悟

已经很久没有静下心来好好的做一次自我总结&#xff0c;个人博客已经搁浅数月&#xff0c;微信公众号也寥寥数篇。甚至我的GitHub 也将近半年没有点亮技能树了。难得的空闲时间&#xff0c;抓紧反思一下。 一个注重仪式感的我&#xff0c;在提前转正的那天&#xff0c;仅仅是发…

python按键盘上哪个键运行_python根据键盘输入进行相应操作

上篇文章介绍了如何利用pyhook模块监听鼠标键盘的事件&#xff0c;接下来如果需要通过监听的事件内容&#xff0c;来做对应的操作&#xff0c;需要对event的内容进行相应的判断。 如果仅仅通过event.key来进行判断&#xff0c;可以写成str(evnet.key) F12等&#xff0c;如果需…

全国计算机等级考试题库二级C操作题100套(第24套)

第24套&#xff1a; 程序通过定义学生结构体变量&#xff0c;存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数 进行输出。 例如&#xff1a;传给形参a的数据中&#xff0c;学号、姓名、和三门课的成绩依次是…

JavaCL 1.0.0-RC3 发布,性能大幅提升

JavaCL 发布 1.0 的第三个 RC 版本&#xff0c;该版本除了 bug 修复之外&#xff0c;性能方面有着非常大的提升&#xff0c;同时支持 OSGi 绑定。详情请看这里。 JavaCL 是一个封装了 OpenCL 图形API的 Java 类库&#xff0c;提供很多高级的图像处理功能。该项目的 JavaDoc 文档…

java 字符串数组定义_「string数组」string 数组怎么定义 - seo实验室

string数组string数组的定义有三种&#xff1a;String arr[] new String[10]; //创建一个长度为10的String 类型数组。String arr[] {"张三","李四"};String[] arr new String[10];相关阅读分析&#xff1a;如果直接输出未初始化的数组元素值&#xff0…

为什么空格拷贝到linux 会变成两个

为什么空格拷贝到linux 会变成两个 学习了&#xff1a;https://zhidao.baidu.com/question/266438357.html 在vi界面内输入:set paste 然后进行拷贝&#xff1b; 拷贝之后&#xff0c;输入:set nopaste 转载于:https://www.cnblogs.com/stono/p/9373893.html

python画图如何调整图例位置_Python-如何将图例排除在情节之外

小编典典 有很多方法可以做你想要的。要添加inalis和Navi所说的内容&#xff0c;可以使用bbox_to_anchor关键字参数将图例部分地放置在轴外and/or 减小字体大小。 在考虑减小字体大小&#xff08;这会使阅读起来非常困难&#xff09;之前&#xff0c;请尝试将图例放在不同的位置…

全国计算机等级考试题库二级C操作题100套(第25套)

第25套&#xff1a; 人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入 结构体数组std中&#xff0c;且编号唯一。函数fun的功能是&#xff1a;找出指定编号人员的数据&#xff0c; 作为函数值返回,由主函数输出,若指定编号不存在&#xff0c;返回数据中的…

Haproxy 与 Cookie

1 什么是cookie ? 参考 cookie http://baike.baidu.com/view/835.htm Cookie&#xff0c;有时也用其复数形式Cookies&#xff0c;指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据&#xff08;通常经过加密&#xff09;。定义于RFC2109&#xff0…

java 动态按钮_java-向片段动态添加按钮

我一直在尝试向片段动态添加按钮,但是我尝试过的所有方法都不起作用.这些是我尝试过的一些方法&#xff1a;1.public View onCreateView(LayoutInflater inflater, Nullable ViewGroup container, Bundle savedInstanceState) {LinearLayout linearlayout new LinearLayout(ge…

进程线程区别,和线程初识

进程是计算机中最小的资源分配单位在利用多个CPU执行的过程中,对多个程序的资源进行管理和隔离进程的弊端开启和关闭 以及 切换 都会带来很大的时间开销过多的进程还会造成操作系统调度的压力线程线程是CPU调度的最小单位每个进程中至少有一个线程实际上执行代码的是线程线程属…