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

 

posted @ 2019-01-07 19:41  街特闷  阅读(773)  评论(0)    收藏  举报