php操纵mysqli数据库的实现方法
./configure--with-mysql=/usr/bin/mysql_config\#使用MysqlClientLibrary(libmysql)构建 --with-mysqli=mysqlnd\#使用MysqlNativeDirver即mysqlnd --with-pdo-mysql=mysqlnd#使用MysqlNativeDirver即mysqlnd
mysqlnd是zend公司开发的mysql数据库驱动,相比原来各方面都有所提高
./configure--with-mysql=mysqlnd--with-mysqli=mysqlnd--with-pdo-mysql=mysqlnd加上你的参数
2、MySQLi_Result处理结果集
3、mysqli_stmt预处理类
#设置字符集
set_charset
character_set_name
//创建mysqli对象方式1 //屏蔽连接产生的错误 $mysqli=newmysqli('127.0.0.1','root','','test'); //只能用函数来判断是否连接成功 if(mysqli_connect_errno()) { echomysqli_connect_error(); } //创建mysqli对象方式2可以设置一些参数 $mysqli=mysqli_init(); $mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT,2);//设置超时时间 $mysqli->real_connect('127.0.0.1','root','','test');
$mysqli=mysqli_init(); $mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT,2);//设置超时时间 $mysqli->real_connect('127.0.0.1','root','','test'); $sql="insertintolimove(`name`,`order`)values('aa',11)"; $rst=$mysqli->query($sql); $sql="deletefromlimovewhereid=221"; $rst=$mysqli->query($sql); if($rst===false) { ee($mysqli->errno); ee($mysqli->error); } #影响条数 ee($mysqli->affected_rows); #插入的id ee($mysqli->insert_id); ee($mysqli);
$mysqli=mysqli_init(); $mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT,2);//设置超时时间 $mysqli->real_connect('127.0.0.1','root','','test'); $sql="select*fromlimoveaslimove_as"; $result=$mysqli->query($sql); if($result===false) { ee($mysqli->errno); ee($mysqli->error); } #行数 ee($result->num_rows); #列数 ee($result->field_count); #字段个数 ee($result->field_count); #获取所有字段的信息 $field_arr=$result->fetch_fields(); #移动字段的指针 //$result->field_seek(1); #依次获取字段的信息 while($field=$result->fetch_field()) { ee($field); } #移动记录指针 $result->data_seek(1); #一次获取所有数据 $data=$result->fetch_all(MYSQLI_ASSOC); #关联数组方式获取结果集 $data=array(); $result->data_seek(0);#重置指针到起始 while($row=$result->fetch_assoc()) { $data[]=$row; } ee($data); $result->free(); $mysqli->close();
$mysqli=mysqli_init(); $mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT,2);//设置超时时间 $mysqli->real_connect('127.0.0.1','root','','test'); $sql_arr=array( 'insertintolimove(id,`name`,`order`)values(null,1,2)', 'insertintolimove(id,`name`,`order`)values(null,1,222)', 'deletefromlimovewhere`order`=2', ); $sql=implode(';',$sql_arr); $result=$mysqli->multi_query($sql); if($result===false) { ee($mysqli->errno); ee($mysqli->error); } $mysqli->close();
$mysqli=mysqli_init(); $mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT,2);//设置超时时间 $mysqli->real_connect('127.0.0.1','root','','test'); $sql_arr=array( 'showtables', 'descselect*fromlimove', 'showcreatetablelimove', ); $sql=implode(';',$sql_arr); $rst=$mysqli->multi_query($sql); if($rst===false) { ee($mysqli->errno); ee($mysqli->error); } do{ $result=$mysqli->store_result();#获取当前光标所在的结果集 $data=$result->fetch_all(); ee($data); }while($mysqli->next_result());#光标移动到下一个结果集 $mysqli->close();
$mysqli=newmysqli("localhost","root","123456","xsphpdb"); //事务处理 $mysqli->autocommit(0); $error=true; $price=50; $sql="updatezhsetye=ye-{$price}wherename='zhangsan'"; $result=$mysqli->query($sql); if(!$result){ $error=false; echo"从张三转出失败 "; }else{ if($mysqli->affected_rows==0){ $error=false; echo"张三的钱没有变化"; }else{ echo"从张三账号中转出成功! "; } } $sql="updatezhsetye=ye+{$price}wherename='lisi1'"; $result=$mysqli->query($sql); if(!$result){ $error=false; echo"从李四转入失败 "; }else{ if($mysqli->affected_rows==0){ $error=false; echo"李四的钱没有变化"; }else{ echo"向李四账号中转入成功! "; } } if($error){ echo"转账成功!"; $mysqli->commit(); }else{ echo"转账失败!"; $mysqli->rollback(); } $mysqli->autocommit(1); $mysqli->close();
mysqli_stmt:mysqli预处理类(推荐):表示了准备好的一个语句,服务器端只编译一次sql
用mysqli和mysqli_result可以实现同样的功能
优点:效率高,适用于语句相同只是数据不同的情况,可以阻止sql注入的产生
mysqli_stmt示例:非select语句
require'fns.php'; //创建mysqli对象方式 $mysqli=@newmysqli('127.0.0.1','root','','test'); //只能用函数来判断是否连接成功 if(mysqli_connect_errno()) { echomysqli_connect_error(); die; } $mysqli->set_charset('utf8'); $sql="insertintolimovevalues(?,?,?)";//语句一样值不相同情况 //mysqli中有直接的方法可用 $stmt=$mysqli->prepare($sql); //绑定参数 $stmt->bind_param('iss',$id,$name,$order); for($i=0;$i<5;$i++){ $id=0; $name='name'; $order=mt_rand(1,1000); $stmt->execute(); } //最后id ee($stmt->insert_id); //影响的行数注:最后一条执行的 ee($stmt->affected_rows); //错误号 ee($stmt->errno); //错误信息 ee($stmt->error); //stmt对象中可以看到更多的信息 ee($stmt); eee($mysqli);
mysqli_stmt示例:select语句1
require'fns.php'; //创建mysqli对象方式 $mysqli=@newmysqli('127.0.0.1','root','','test'); //只能用函数来判断是否连接成功 if(mysqli_connect_errno()) { echomysqli_connect_error(); die; } $mysqli->set_charset('utf8'); $sql="select*fromlimovewhereid
以上这篇php操纵mysqli数据库的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。