mysql与msqli,PHP操作Mysql数据库(Msqli)

1.连接数据库

$mysqli  = new  mysqli( 主机' ,  '用户名' ,  '密码' ,  '数据库' );//连写

或者

$mysqli=new mysqli();// 实例化mysqli

$mysqli->connect(‘主机’, ‘用户名’, ’密码’, ’数据库’);

$mysqli->close(); //关闭资源

2.处理连接错误

mysqli_connect_errno()函数返回链接数据库返回的错误号。

mysqli_connect_error()函数返回连接数据库返回的错误代码。

$mysqli=new mysqli();//实例化mysqli

@$mysqli->connect('localhost','root',root,'test');

if($mysqli->connect_error){

echo'数据库连接错误,错误信息是.'.$mysqli->connect_error;

exit();

}else{

//正常逻辑代码

}

3.查询数据的处理

(1)fetch_row()

header('Content-type:text/html;charset=utf8');

$mysqli=new mysqli();//实例化mysqli

@$mysqli->connect('127.0.0.1','root','root','info');

if($mysqli->connect_error){

exit('数据库连接错误,错误信息是.'.$mysqli->connect_error);

}

$mysqli->set_charset("UTF8");//设置数据库编码

$sql='select * from tp_product';//创建一句SQL语句

$result=$mysqli->query($sql);//执行sql语句把结果集赋给$result

print_r($result->fetch_row());//将结果集的第一行输出

$result->free();//释放查询内存(销毁)

$mysqli->close();//别忘了关闭你的"小资源";

(2)fetch_object()

header('Content-type:text/html;charset=utf8');

$mysqli=new mysqli();//实例化mysqli

@$mysqli->connect('192.168.2.11','root','root','info');

if($mysqli->connect_error){

exit('数据库连接错误,错误信息是.'.$mysqli->connect_error);

}

$mysqli->set_charset("UTF8");//设置数据库编码

$sql='select * from tp_product';//创建一句SQL语句

$result=$mysqli->query($sql);//执行sql语句把结果集赋给$result

/*

$row = $result->fetch_object();//将结果集包装成对象

echo $row->user;//输出对象中的一个字段(属性)

*/

while (!!$row = $result->fetch_object()){ //遍历所有的用户名称

echo $row->pid.'->'.$row->id."
";

var_dump($row);

}

$result->free();//释放查询内存(销毁)

$mysqli->close();//别忘了关闭你的"小资源";

(3)fetch_array()

header('Content-type:text/html;charset=utf8');

$mysqli=new mysqli();//实例化mysqli

@$mysqli->connect('192.168.2.11','root','root','info');

if($mysqli->connect_error){

exit('数据库连接错误,错误信息是.'.$mysqli->connect_error);

}

$mysqli->set_charset("UTF8");//设置数据库编码

$sql='select id,pid from tp_product';//创建一句SQL语句

$result=$mysqli->query($sql);//执行sql语句把结果集赋给$result

/*$row = $result->fetch_assoc();//将结果集包装成关联数组

var_dump($row);

echo '
'.$row['pid'];

*/

while($row = $result->fetch_assoc()){//遍历所有

var_dump($row);echo "br>";

}

$result->free();//释放查询内存(销毁)

$mysqli->close();//别忘了关闭你的"小资源";

4.执行多条SQL语句

$mysqli=new mysqli();//实例化mysqli

@$mysqli->connect('127.0.0.1','root','root','info');

if(mysqli_connect_error()){

exit('数据库连接错误,错误信息是.'.mysqli_connect_error());

}

$mysqli->set_charset("UTF8");//设置数据库编码

//创建多条SQL语句

$sql='';

$sql .= "SELECT article_title FROM tp_article;";

$sql .= "SELECT nav_name FROM tp_nav;";

$sql .= "SELECT order_id FROM tp_order";

if ($mysqli->multi_query($sql)) {//开始执行多条SQL语句

$result = $mysqli->store_result();

print_r($result->fetch_assoc());//开始获取第一条SQL语句的结果集

echo "


";

$mysqli->next_result();//将结果集指针移到下一个

$result = $mysqli->store_result();

print_r($result->fetch_assoc());//开始获取第二条SQL语句的结果集

echo "


";

$mysqli->next_result();

$result = $mysqli->store_result();

print_r($result->fetch_assoc());//开始获取第三条SQL语句的结果集

} else {

echo 'sql语句有误!';

}

$result->free();//释放查询内存(销毁)

$mysqli->close();//别忘了关闭你的"小资源";

5.数据库事务

事务(transaction)是作为整个一个单元的一组有序的数据库操作。如果一组中的所有操作都成功,则认为事务成功,即使只有一个失败操作,事务也不成功。如果所有操作成功完成,事务则提交(commit),其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚(roll back),该事务所有操作的影响都将取消。首先,您的MySQL是InnoDB或BDB引擎的一种,一般来说,你安装了AppServ的集成包,你选择InnoDB的引擎的数据库即可。如果你建立的表不是InnoDB,可以在phpmyadmin里修改

$mysqli=new mysqli();//实例化mysqli

@$mysqli->connect('192.168.2.11','root','root','test');

if($mysqli->connect_error){

exit('数据库连接错误,错误信息是.'.$mysqli->connect_error.'
错误码为:'.$mysqli->connect_errno);

}

$mysqli->set_charset("UTF8");//设置数据库编码

//首先你必须关闭自动提交数据

$mysqli->autocommit(false);

//创建一个SQL语句,必须同时运行成功,不能出现一个成功,一个失败

$sql='';

$sql .= "UPDATE `copy1` SET phone=666666 WHERE id=1;";

$sql .= "UPDATE `copy1` SET phone=999999 WHERE id=2;";

//执行两条SQL语句

if ($mysqli->multi_query($sql)) {

//获取第一条SQL一影响的行数

$success = $mysqli->affected_rows == 1 ? true : false;

//下移,第二条SQL

$mysqli->next_result();

//获取第二条SQL影响的行数

$success2 = $mysqli->affected_rows == 1 ? true : false;

//判断是否都正常通过了,两个SQL

if ($success && $success2) {

$mysqli->commit();

echo '完美提交!';

} else {

$mysqli->rollback();

echo '程序出现异常!';}

} else {

echo "SQL语句有误:".$mysqli->errno.$mysqli->error;

}

//最后还必须开启自动提交

$mysqli->autocommit(true);

$mysqli->close();//别忘了关闭你的"小资源";

6.sql语句的预处理(主要用于insert,update)

mysqli预处理类(推荐):表示了准备好的一个语句,服务器端只编译一次sql 用mysqli和mysqli_result可以实现同样的功能 优点:效率高,适用于语句相同只是数据不同的情况 ,可以阻止sql注入的产生

$mysqli=new mysqli();

$mysqli->connect('192.168.2.11','root','root','test');

if($mysqli->connect_error){

exit('数据库连接失败,错误信息为:'.$mysqli->connect_error);

}

$mysqli->set_charset('UTF8');

$sql="INSERT INTO `login`(username,passwd) VALUES(?,?)";

$smt=$mysqli->prepare($sql);

$smt->bind_param('ss',$name,$pwd);//绑定数据

/*第一个参数是绑定类型,"s"是指一个字符串,也可以是"i",指的是int。也可以是"db",

* d代表双精度以及浮点类型,而b代表blob类型,第二个参数是变量....

*/

$name='李四';

$pwd='99999';

$smt->execute();//执行SQL语句

$name='lisi';

$pwd='88888';

$smt->execute();//执行SQL语句

$mysqli->close();//关闭连接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值