php网站与数据库的连接数据库,php mysql(php mysql连接数据库)

phpmysql

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是PHPDataObjects的缩写,是PHP使用中的一个数据库抽象层标准。PDO供给了一个一致的API接口能够使得你的PHP使用不去关怀具体要衔接的数据库服务器体系类型,也便是说,假如你使用PDO的API,能够在任何需要的时分无缝切换数据库服务器,比如从Oracle到MySQL,只是需要修正很少的PHP代码。其功用类似于JDBC、ODBC、DBI之类接口。同样,其也处理了sql注入问题,有很好的安全性。不过他也有缺陷,某些多句子履行查询不支撑(不过该状况很少)。e40f8d2410dcf37b8786f64cb6f5aec2.png

官文对于三者之间也做了列表性的比较:

PHP的mysqli扩展PDOPHP的mysql扩展

引入的PHP版别5.05.03.0之前

PHP5.x是否包括是是是

MySQL开发状况活泼在PHP5.3中活泼仅保护

在MySQL新项目中的建议使用程度建议-首选建议不建议

API的字符集支撑是是否

服务端prepare句子的支撑状况是是否

客户端prepare句子的支撑状况否是否

存储进程支撑状况是是否

多句子履行支撑状况是大多数否

是否支撑所有MySQL4.1以上功用是大多数否

从官方给出的这份成果上来看,优先引荐msqli,其次是PDO。而“民间”给出的成果很多是倾向于使用PDO,因为其不担有跨库的长处,更有读写速度快的特色。

1、PHP与Mysql扩展(本扩展自PHP5.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(“couldnotconnecttothedatabase:\\n”.mysql\_error());//确诊衔接过错}

mysql\_query(“setnames’utf8′”);//编码转化$select\_db=mysql\_select\_db($mysql\_conf\[‘db’\]);if(!$select\_db){

die(“couldnotconnecttothedb:\\n”.mysql\_error());

}

$sql=”select\*fromuser;”;

$res=mysql\_query($sql);if(!$res){

die(“couldgettheres:\\n”.mysql\_error());

}while($row=mysql\_fetch\_assoc($res)){

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(“couldnotconnecttothedatabase:\\n”.$mysqli->connect\_error);//确诊衔接过错}

$mysqli->query(“setnames’utf8’;”);//编码转化$select\_db=$mysqli->select\_db($mysql\_conf\[‘db’\]);if(!$select\_db){

die(“couldnotconnecttothedb:\\n”.$mysqli->error);

}$sql=”selectuidfromuserwherename=’joshua’;”;

$res=$mysqli->query($sql);if(!$res){

die(“sqlerror:\\n”.$mysqli->error);

}

while($row=$res->fetch\_assoc()){

var\_dump($row);

}

$res->free();

$mysqli->close();?>

3、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(“setnames’utf8′”);

$sql=”select\*fromuserwherename=?”;

$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;//封闭衔接?>

phpmysql连接数据库

1.最简单的方式-mysql(面向过程)

$con=mysql_connect(“localhost”,”root”,”password”);

$select_db=mysql_select_db(‘test’);

if(!$select_db){

die(“couldnotconnecttothedb:\n”.mysql_error());

}

//查询代码

$sql=”select*fromdb_table”;

$res=mysql_query($sql);

if(!$res){

die(“couldgettheres:\n”.mysql_error());

}

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

print_r($row);

}

//查询代码

//关闭数据库连接

mysql_close($con);

?>

2.新的方式-mysqli(面向过程)

$mysql_server_name=’localhost’;//改成自己的mysql数据库服务器

$mysql_username=’root’;//改成自己的mysql数据库用户名

$mysql_password=’password’;//改成自己的mysql数据库密码

$mysql_database=’test’;//改成自己的mysql数据库名

$conn=mysqli_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database);//连接数据库

//连接数据库错误提示

if(mysqli_connect_errno($conn)){

die(“连接MySQL失败:”.mysqli_connect_error());

}

mysqli_query($conn,”setnamesutf8″);//数据库编码格式

//mysqli_set_charset($conn,”utf8″);//设置默认客户端字符集。

//mysqli_select_db($conn,$mysql_database);//更改连接的默认数据库

//查询代码

$sql=“select*fromdb_table”;

$query=mysqli_query($conn,$sql);

while($row=mysqli_fetch_array($query)){

echo$row[‘title’];

}

//查询代码

//释放结果集+关闭MySQL数据库连接

mysqli_free_result($result);

mysqli_close($conn);

3、常用方式-mysqli(面向对象)

复制代码

//连接数据库方式1

$conn=newmysqli(‘localhost’,’root’,’password’,’test’);

//连接数据库方式2

//$conn=newmysqli();

//$conn->connect(‘localhost’,’root’,’password’,’test’);

//checkconnection(检查PHP是否连接上MYSQL)

if($conn->connect_errno){

printf(“Connectfailed:%s\n”,$conn->connect_error);

exit();

}

//查询代码

$sql=“select*fromdb_table”;

$query=$conn->query($sql);

while($row=$query->fetch_array()){

echo$row[‘title’];

}

//查询代码

//释放结果集+关闭MySQL连接

$query1->free_result();

$conn->close();

4、PDO连接MySQL数据库

$db=newPDO(‘mysql:host=localhost;dbname=test’,’root’,’password’);

try{

foreach($db->query(‘select*fromdb_table’)as$row){

print_r($row);

}

$db=null;//关闭数据库

}catch(PDOException$e){

echo$e->getMessage();

}

?>

5、ADODB连接MySQL数据库

//安装驱动-引入类即可

require_once’./adodb5/adodb.inc.php’;

$conn=&ADONewConnection(‘mysql’);

$conn->connect(‘localhost’,’root’,’password’,’test’);

$conn->Execute(“setnamesutf8”);

//查询代码

$res=$conn->Execute(“select*fromdb_table”);

if(!$res){

echo$conn->ErrorMsg();

}else{

var_dump($res);

}

?>

//关闭连接

$conn->close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值