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数据库的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
