PHP操作mysql数据库
数据库操作过程
1) 打开cmd客户端
2)输入命令:mysql -hlocalhost -uroot -p 回车:输入密码
3)选择数据库
4)查看库中的表,对表进行增删改查
5)退出
PHP连接mysql步骤
PHP作为连接数据库的客户端,也像cmd那样需要命令和步骤帮我们连接mysql,只不过这些命令都
是PHP函数提供了。
PHP连接mysql共有8步。
1 <?php 2 3 //1.连接数据库 4 $link=mysqli_connect('localhost','root',''); 5 //var_dump($link); 6 //2.判断错误 7 // echo mysqli_connect_error($link); 8 // echo mysqli_connect_errno($link); 9 if(mysqli_connect_errno($link)>0){ 10 echo mysqli_connect_error($link);exit; 11 //echo '你报错了';exit; 12 //3.选择数据库 13 mysqli_select_db($link,'test'); 14 //4.选择字符集 15 mysqli_set_charset($link,'utf8'); 16 //5.准备sql语句 17 //$sql="SELECT id,name,sex,age,city FROM info"; 18 $sql= "INSERT INTO info(name,sex,age,city) VALUES(null,'宁宁',34,1,'郑州')"; 19 //6.发送sql语句 20 $result = mysqli_query($link,$sql); 21 //$result = mysqli_query($link,"SELECT id,name,sex,age,city FROM info"); 22 var_dumP($result); 23 //7.处理结果集 24 //var_dump(mysqli_num_rows($result)); 25 var_dump(mysqli_affected_rows($link)); 26 //8.关闭数据库 27 mysqli_close($link);
八步函数说明:
1. 连接数据库函数
mysqli_connect(主机名,用户名,密码)
返回值是我们一个连接的对象 如果连接失败 报错并且返回false
2. 判断错误
mysqli_connect_error(连接对象
错误信息 返回错误信息
mysqli_connect_errno(连接对象)
错误号 0 代表连接成功没有错误
3. 选择数据库函数
mysqli_select_db(连接对象,要选择的数据库名)
如果选择成功返回true 否则返回false
4. 选择字符集
mysqli_set_charset(连接对象,要选择的字符集)
如果选择成功返回true 否则返回false
5. 发送sql语句
myqli_query(连接对象,要发送的sql语句);
成功得到一个结果集对象 失败返回false
6. 处理结果
6.1 获取条目数
a. mysqli_num_rows(结果集对象)
用来获取查询得到的记录条数
仅对select有效
b. mysqli_affected_rows(连接对象
前一次mysql操作的受影响行数,就是影响了几行
类型 INSERT UPDATE DELETE操作使用
返回值 大于0的整数成功 -1 执行失败
6.2 获取查询的结果集的内容
1.mysqli_fetch_array(结果集对象) 将查询的结果以混合数组的形式返回
一次返回一条
2.mysqli_fetch_row(结果集对象) 将查询的结果以索引数组的形式返回
一次返回一条
3.mysqli_fetch_assoc(结果集对象) 将查询的结果以关联数组的形式返回
一次返回一条
6.3 获取上一次插入的id
mysqli_insert_id(连接对象)
将上一次插入的数据id返回
7. 关闭数据库
mysqli_close(连接对象)
关闭数据库
结果集处理函数
mysqli_num_rows()
mysqli_fetch_assoc()
mysqli_fetch_row()
mysqli_fetch_array()
1 //1. 2 $link = mysqli_connect('localhost','root',''); 3 //2 4 if(mysqli_connect_errno($link)>0){ 5 echo mysqli_connect_error($link);exit; 6 }//3. 7 mysqli_select_db($link,'test'); 8 //4. 9 mysqli_set_charset($link,'utf8'); 10 //5. 11 $sql="SELECT id,name,sex,age,city FROM info"; 12 //6. 13 $result = mysqli_query($link,$sql); 14 //7. 15 var_dump(mysqli_num_rows($result)); 16 // var_dump(mysqli_fetch_array($result)); 17 // var_dump(mysqli_fetch_row($result)); 18 // var_dump(mysqli_fetch_assoc($result)); 19 while($row = mysqli_fetch_assoc($result)){ 20 var_dump($row['age']); 21 } //8. 22 mysqli_close($link);
利用mysqli_fetch_assoc() 生成表格
1 <?php 2 //1. 3 $link=mysqli_connect('localhost','root',''); 4 //2. 5 if(mysqli_connect_errno($link)>0){ 6 echo mysqli_connect_error($link);exit; 7 } //3. 8 mysqli_select_db($link,'test'); 9 //4.mysqli_set_charset($link,'utf8'); 10 //5. 11 $sql="SELECT id,name,sex,age,city FROM info"; 12 //6. 13 $result = mysqli_query($link,$sql); 14 //7. 15 if($result && mysqli_num_rows($result)>0){ 16 echo '<table border="1" width="800" align="center">'; 17 echo '<tr>'; 18 echo '<td>编号</td>'; 19 echo '<td>姓名</td>'; 20 echo '<td>年龄</td>'; 21 echo '<td>性别</td>'; 22 echo '<td>城市</td>'; 23 echo '</tr>'; 24 while($row = mysqli_fetch_assoc($result)){ 25 echo '<tr>'; 26 echo '<td>'.$row['id'].'</td>'; 27 echo '<td>'.$row['name'].'</td>'; 28 echo '<td>'.$row['age'].'</td>'; 29 echo '<td>'.$row['sex'].'</td>'; 30 echo '<td>'.$row['city'].'</td>'; 31 echo '</tr>'; 32 }echo '</table>'; 33 }else{ 34 echo '查询失败'; 35 //8. 36 mysqli_close($link);
表格生成进化版:
<?php $link = mysqli_connect('localhost','root','123456'); if(mysqli_connect_errno($link)>0){ echo mysqli_connect_error($link);exit; } mysqli_select_db($link,'test'); mysqli_set_charset($link,'utf8'); $sql="SELECT id,name,sex,age,city FROM info"; $result = mysqli_query($link,$sql); if($result && mysqli_num_rows($result)>0){ $userlist = array(); while($row = mysqli_fetch_assoc($result)){ //var_dump($row); $userlist[]=$row; } }// var_dump($userlist);exit; $i=1; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <table border="1" width="800" align="center"> <tr> <td>编号</td> <td>姓名</td> <td>年龄</td> <td>性别</td> <td>城市</td> </tr> / <?php foreach($userlist as $value): //var_dump($value);?> <tr> <td><?php echo $i++;?></td> <td><?php echo $value['name'];?></td> <td><?php echo $value['age'];?></td> <td><?php echo $value['sex'];?></td> <td><?php echo $value['city'];?></td> </tr> <?php endforeach; ?> </table> </body> </html> <?php mysqli_close($link);?>
mysqli_insert_id() 返回上次insert操作返回的id
1 <?php 2 $link = mysqli_connect('localhost','root','123456'); 3 if(mysqli_connect_errno($link)>0){ 4 echo mysqli_connect_error($link);exit; 5 } mysqli_select_db($link,'test'); 6 mysqli_set_charset($link,'utf8'); 7 $sql="INSERT INTO info(id,name,sex,age,city) VALUES(NULL,'鼎鼎',0,38,'成 8 都')"; 9 $result = mysqli_query($link,$sql); 10 if($result && mysqli_affected_rows($link)>0){ 11 echo mysqli_insert_id($link); 12 echo '插r入成功'; 13 }else{ 14 echo '插不进去'; 15 } mysqli_close($link);
mysqli_affected_rows(连接对象)
前一次mysql操作的受影响行数
类型 INSERT UPDATE DELETE操作使用
返回值 大于0的整数成功 -1 执行失败
1 <?php 2 $link = mysqli_connect('localhost','root','123456'); 3 if(mysqli_connect_errno($link)>0){ 4 echo mysqli_connect_error($link);exit; 5 } mysqli_select_db($link,'test'); 6 mysqli_set_charset($link,'utf8'); 7 //$sql="UPDATE info SET name='烨欢',city='东莞',sex=0 WHERE id=25"; 8 $sql="DELETE FROM info WHERE id=72"; 9 $result =mysqli_query($link,$sql); 10 if($result && mysqli_affected_rows($link)>0){ 11 echo '手术成功'; 12 }else{ 13 echo '手术失败'; 14 }mysqli_close($link);

浙公网安备 33010602011771号