PHP的MySQLi扩展

什么是PHPMySQLi扩展?

        ——PHPMySQLi扩展又称为MySQL增强扩展,mysqli扩展在PHP5及以后版本中包含。

MySQLi扩展相对于MySQL扩展的优势

        ——基于面向过程和面向对象的使用

        ——支持预处理语句

        ——支持事务

 

MySQLi扩展安装

       ——配置PHP配置文件,开启php_mysqli.dll扩展

       (1)打开php.ini,查找php_mysqli.dll,去掉注释,即 “;”即可。


  (2)——配置extension_dir=’ext目录所在位置


  (3)——重启服务器

    

检验是否成功开启MySQLi服务

<?php
//1.验证MySQLi扩展是否已经开启
//phpinfo();
//2.检测扩展是否已经加载
var_dump(extension_loaded('mysqli'));
var_dump(extension_loaded('curl'));
echo '<br />';
//3.检测函数是否存在
var_dump(function_exists('mysqli_connect'));
echo '<br />';
//4.得到当前已经开启的扩展
print_r(get_loaded_extensions());
echo '<br />';
?>


MySQLi扩展面向对象的使用

   通过MySQLi类库操作数据库的步骤

      1.建立到MySQL的连接

      2.打开指定的数据库

      3.设置默认客户端的字符集

      4.执行SQL查询

      5.释放结果集

      6.关闭连接

 

 <?php
     //方法一:
     //1.建立到MySQL数据库的连接
        $mysqli1 = new mysqli('localhost','root','password');
     //打开指定的数据库,数据库名字为存在的数据库,不然会报错
        $mysqli1->select_db('database');
     
      //方法二:
        $mysqli2 = new mysqli();
        $mysqli2->connect('localhost','root','password');
        $mysqli2->select_db('database');
 
      //方法三:
       //建立连接的同时打开指定数据库
        $mysqli3 = new mysqli('localhost','root','password','database');
        var_dump($mysqli1);
        var_dump($mysqli2);
        var_dump($mysqli3);
 ?>


MySQLi实现创建数据表操作

<?php
//1.建立到MySQL的连接
$mysqli=@new mysqli('localhost','root','root','test');
if($mysqli->connect_errno){
die('Connect Error:'.$mysqli->connect_error);
}
//2.设置默认的客户端编码方式utf8
$mysqli->set_charset('utf8');
 
//3.执行SQL查询
$sql=<<<EOF
CREATE TABLE IF NOT EXISTS mysqli(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL
);
EOF;
$res=$mysqli->query($sql);
var_dump($res);
 
/*
 SELECT/DESC/DESCRIBE/SHOW/EXPLAIN执行成功返回mysqli_result对象,执行失败返回false
 对于其它SQL语句的执行,执行成功返回true,否则返回false
 */
//关闭连接
$mysqli->close();
?>

MySQLi实现插入、更新、删除记录操作

<?php
header('content-type:text/html;charset=utf-8');
$mysqli=new mysqli('localhost','root','root','test');
if($mysqli->connect_errno){
die('CONNECT ERROR:'.$mysqli->connect_error);
}
$mysqli->set_charset('utf8');
 
//执行SQL查询
//添加记录
//执行单条SQL语句,只能执行一条SQL语句
// $sql="INSERT user(username,password) VALUES('timor','timor');";
// $sql.="DROP TABLE user;";    //这里会报错,因为通过$mysqli->query($sql) 执行查询只能实现一条SQL语句
$sql="INSERT user(username,password) VALUES('riven','riven'),('liqing','liqing'),('curki','curki'),('echo','echo')";
$res=$mysqli->query($sql);
if($res){
//得到上一步插入操作执行后的AUTO_INCREMENT的值
echo '恭喜您注册成功,您是网站第'.$mysqli->insert_id.'位用户<br/>';
//得到上一步操作产生的受影响记录条数
    /*
      affected_rows值为3种:
      1.受影响的记录条数
      2.-1,代表SQL语句有问题
      3.0,代表没有受影响记录的条数
 */
echo '有'.$mysqli->affected_rows.'记录被影响';
}else{
//得到上一步操作产生的错误号和错误信息
echo 'ERROR '.$mysqli->errno.':'.$mysqli->error;
}
echo '<hr/>';
 
//将表中年龄+8
$sql="UPDATE user SET age=age+8";
$res=$mysqli->query($sql);
if($res){
echo $mysqli->affected_rows.'条记录被更新';
}else{
echo "ERROR ".$mysqli->errno.':'.$mysqli->error;
}
echo '<hr/>';
 
//将表中id<=5的用户删除掉
$sql="DELETE FROM user WHERE id<=5";
$res=$mysqli->query($sql);
if($res){
echo $mysqli->affected_rows.'条记录被删除';
}else{
echo "ERROR ".$mysqli->errno.':'.$mysqli->error;
}
//关闭到MySQL的连接
$mysqli->close();
?>
 

 

MySQLi实现查询记录操作

<?php
header('content-type:text/html;charset=utf-8');
$mysqli=new mysqli('localhost','root','root','test');
if($mysqli->connect_errno){
	die('CONNECT ERROR:'.$mysqli->connect_error);
}
$mysqli->set_charset('utf8');
$sql="SELECT id,username,age FROM user";
$mysqli_result=$mysqli->query($sql);
//var_dump($mysqli_result);
if($mysqli_result && $mysqli_result->num_rows>0){
	//echo $mysqli_result->num_rows;
	//$rows=$mysqli_result->fetch_all();//获取结果集中所有记录,默认返回的是二维的索引+索引的形式
	//$rows=$mysqli_result->fetch_all(MYSQLI_NUM);  // 返回的是索引数组 
	//$rows=$mysqli_result->fetch_all(MYSQLI_ASSOC);  // 返回的是关联数组 
	//$rows=$mysqli_result->fetch_all(MYSQLI_BOTH);  // 二者均有
// 	$row=$mysqli_result->fetch_row();//取得结果集中第一条记录作为索引数组返回
// 	print_r($row);
// 	echo '<hr/>';
// 	$row=$mysqli_result->fetch_assoc();//取得结果集中的一条记录作为关联数组返回
// 	print_r($row);
// 	echo '<hr/>';
// 	$row=$mysqli_result->fetch_array();  //默认返回二者都有的数组
// 	print_r($row);
	
// 	echo '<hr/>';
// 	$row=$mysqli_result->fetch_array(MYSQLI_ASSOC); // 返回关联数组
// 	print_r($row);
	
// 	echo '<hr/>';
// 	$row=$mysqli_result->fetch_object();
// 	print_r($row);
// 	echo '<hr/>';
// 	//移动结果集内部指针
// 	$mysqli_result->data_seek(0); //得到结果集中第一条记录
// 	$row=$mysqli_result->fetch_assoc();
// 	print_r($row);
	
// 	print_r($rows);

	while($row=$mysqli_result->fetch_assoc()){
		//print_r($row);
		//echo '<hr/>';
		$rows[]=$row;
	}
	print_r($rows);
	
	//释放结果集
	$mysqli_result->free();
	
	
}else{
	echo '查询错误或者结果集中没有记录';
}
$mysqli->close();

?>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值