袁来如此的工作笔记
袁来如此的工作笔记
竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。

MySQLi简述

浏览量:606

MySQLi基于OOP的编程

<?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();

需要注意的是数据库中的是utf8,而不是utf-8;


插入记录操作


<?php
/*
* 数据库插入数据
*/
require_once 'connect.php';
$sql="insert mysqli(username) value('Tom')";
if($res){
echo $mysqli->insert_id; 
}else{
echo 'ERROR '.$mysqli->error;
}


或者,插入多条记录

$sql="insert mysqli(username) value('Sdaf'),('Andy')";



更新记录


$sql="update test set id=id+10";
$mysqli->query($sql);


删除


$sql="delete from mysqli where id>=2";



--小结


<?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('king','king');";
// $sql.="DROP TABLE user;";
$sql="INSERT user(username,password) VALUES('queen1','queen1'),('queen2','queen2'),('queen3','queen3'),('queen4','queen4')";
$res=$mysqli->query($sql);
if($res){
//得到上一插入操作产生的AUTO_INCREMENT的值
echo '恭喜您注册成功,您是网站第'.$mysqli->insert_id.'位用户<br/>';
//得到上一步操作产生的受影响记录条数
echo '有'.$mysqli->affected_rows.'记录被影响';
}else{
//得到上一步操作产生的错误号和错误信息
echo 'ERROR '.$mysqli->errno.':'.$mysqli->error;
}
echo '<hr/>';
//将表中年龄+10
$sql="UPDATE user SET age=age+10";
$res=$mysqli->query($sql);
if($res){
echo $mysqli->affected_rows.'条记录被更新';
}else{
echo "ERROR ".$mysqli->errno.':'.$mysqli->error;
}
echo '<hr/>';
//将表中id<=6的用户删除掉
$sql="DELETE FROM user WHERE id<=6";
$res=$mysqli->query($sql);
if($res){
echo $mysqli->affected_rows.'条记录被删除';
}else{
echo "ERROR ".$mysqli->errno.':'.$mysqli->error;
}
//关闭到MySQL的连接
$mysqli->close();



需要注意的是,用的是select,所以返回的是结果集,是可以打印出来的print_r或var_dump。


所以这里就要说一下,返回的结果集的选择了。


<?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();


 


打赏