php操纵mysqli数据库的实现方法
<p style="line-height: 1.5; margin: 10px auto">从php5.0开始增加mysql(i)支持,新加的功能都以对象的形式添加 <p style="line-height: 1.5; margin: 10px auto">i表示改进的意思 功能多、效率高、稳定 <p style="line-height: 1.5; margin: 10px auto"> 编译时参数:<div class="jb51code"> <pre class="brush:php;"> ./configure --with-mysql=/usr/bin/mysql_config #使用 Mysql ClientLibrary(libmysql)构建 --with-mysqli=mysqlnd #使用 Mysql Native Dirver 即mysqlnd --with-pdo-mysql=mysqlnd #使用 Mysql Native Dirver 即mysqlnd
mysqli提供的三个类: 设置字符集 set_charset <p style="line-height: 1.5; margin: 10px auto">#获取字符集 character_set_name <p style="line-height: 1.5; margin: 10px auto"> 获取数据库对象<div class="jb51code"> <pre class="brush:php;"> //创建mysqli对象方式 1 //屏蔽连接产生的错误 $mysqli = new mysqli('127.0.0.1','root','','test'); //只能用函数来判断是否连接成功 //创建mysqli对象方式 2 可以设置一些参数
无结果集示例 options(MYSQLI_OPT_CONNECT_TIMEOUT,'test');
$sql = "insert into limove( $sql = "delete from limove where id = 221"; if($rst === false) 影响条数ee($mysqli->affected_rows); 插入的idee($mysqli->insert_id); ee($mysqli); 有结果集 options(MYSQLI_OPT_CONNECT_TIMEOUT,'test');
$sql = "select * from limove as limove_as"; $result = $mysqli->query($sql); 行数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()) 移动记录指针$result->data_seek(1); 一次获取所有数据$data = $result->fetch_all(MYSQLI_ASSOC); 关联数组方式获取结果集$data = array(); $result->data_seek(0); #重置指针到起始 ee($data); $result->free();
options(MYSQLI_OPT_CONNECT_TIMEOUT,'test');
$sql_arr = array( $sql = implode(';',$sql_arr); $result = $mysqli->multi_query($sql); $mysqli->close(); 有结果集 options(MYSQLI_OPT_CONNECT_TIMEOUT,'test');
$sql_arr = array( $rst = $mysqli->multi_query($sql); if($rst === false) do{ $data = $result->fetch_all(); ee($data); }while($mysqli->next_result());#光标移动到下一个结果集 $mysqli->close(); 事务处理: //事务处理
$mysqli->autocommit(0); $error=true; $price=50; $sql="update zh set ye=ye-{$price} where name='zhangsan'"; $result=$mysqli->query($sql); if(!$result){ $sql="update zh set ye=ye+{$price} where name='lisi1'"; $result=$mysqli->query($sql); if(!$result){ if($error){ $mysqli->autocommit(1); mysqli_stmt:mysqli预处理类(推荐):表示了准备好的一个语句,服务器端只编译一次sql 用mysqli和mysqli_result可以实现同样的功能 优点:效率高,适用于语句相同只是数据不同的情况 ,可以阻止sql注入的产生mysqli_stmt示例:非select语句//创建mysqli对象方式
$mysqli = @new mysqli('127.0.0.1','test'); //只能用函数来判断是否连接成功 $mysqli->set_charset('utf8'); $sql = "insert into limove values(?,?,?)"; //语句一样值不相同情况 //mysqli中有直接的方法可用 //绑定参数 for($i=0;$i<5;$i++){ } //最后id //影响的行数 注:最后一条执行的 //错误号 //错误信息 //stmt对象中可以看到更多的信息 eee($mysqli); mysqli_stmt示例:select语句 1//创建mysqli对象方式
$mysqli = @new mysqli('127.0.0.1','test'); //只能用函数来判断是否连接成功 $mysqli->set_charset('utf8'); $sql = "select * from limove where id 以上这篇php操纵mysqli数据库的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |