PHP连接MySQL数据库实现增删改查(多种查询方式)

在公司里面的话,会把常用的函数做成一个类,但万变不离其中。在这儿我用一些实例来介绍一些基础性的操作。该文章若有不善之处还望您直言不讳。

废话不多说入正题,请看下方目录:


目录直通车

1. PHP内置函数介绍

2. 连接数据库

3. 实现增删改查

1)增添数据 

2)删除数据

3)修改数据

4)查询数据

查询不重复的数据

条件查询

数据整合(聚合)


1. PHP内置函数介绍

先介绍一些PHP的常用函数作为参考,再进行操作就很容易了。

1) 连接数据库

 Mysql_connect(ip,用户名,密码) or die (‘连接失败!’);

2) 选择数据库(两种方法)

方法一: Mysql_query(‘use 数据库名’);

方法二: Mysql_select_db(‘数据库名’);

3)设置客户端的字符编码

如果遇到了乱码的问题加入下面这串代码就ok了。

sql_query(set names UTF-8);//解决字符乱码问题

4)执行SQL语句

Mysql_query(SQL语句);

5)从结果集中取得一行作为数组返回查询结果

mysql_fetch_row();

该函数主要用于查询结果集,其区别在于函数的返回值不是一个字符串,而是一个数组。在取出最后一行后,函数将返回false,循环结束。就可以把结果集中的所有数据逐行取出并显示。

实例:

 
  1. <?php

  2.  
  3. $sql = mysql_query("select * from table_name");//将表table_name的全部数据存放到$sql

  4.  
  5. $row = mysql_fetch_row($sql);//获取$sql里面的第一个数据作为数组存储在$row中

  6.  
  7. if ($_POST["Submit"]=="查询"){

  8. //如果从前端接收到的value为‘查询’

  9.  
  10.     $keyword= $_POST["red"];//从前端接收到的查询关键字存储到$name

  11.  
  12.     $sql = mysql_query("select * from table_name where color like '%".trim($keyword)."%'"); //执行模糊查询

  13.  
  14.     $row = mysql_fetch_row($sql);  //逐行获取查询结果,返回值为数组

  15.  
  16. }

  17.  
  18. ?>

​​​​​​

2. 连接数据库

一般在公司里面都是框架的二次开发,不会涉及到自己写连接数据库的代码。说白了,无非是数据库连接的函数使用。

实例:

方式一:

 
  1. <?php

  2.  
  3. $link=@Mysql_connect(‘URL’,’数据库账号’,’数据库密码’) or die (‘连接失败!’);

  4.  
  5. Mysql_select_db(‘数据库名称’) or die (‘选择失败!’);

  6.  
  7. ?>

方式二:

 
  1. <?php

  2. $myhost = 'localhost:3306'; // mysql服务器主机地址

  3. $myusername = 'root'; // mysql用户名

  4. $mypassword = 'DJun'; // mysql用户名密码

  5. $conn = mysqli_connect($myhost , $myusername , $mypassword );

  6. if(! $connect )

  7. {

  8. die('连接失败: ' . mysqli_error($connect ));

  9. }

  10.  
  11. mysqli_query($connect , "set names utf8");// 设置编码,防止中文乱码

3. 实现增删改查

增删改查可以通过三种方式实现:命令化界面(CMD)、网页代码、软件。

在命令化的界面和网页代码中,增删改查对应四类SQL语句,原理都是一样的。另外一种方式就是使用如Navicat类似软件图形化操作。简单的为大家介绍四类SQL语句:

1)增添数据 

在标准SQL语句中的INSERT语句形式:

INSERT INTO tablename(表名) VALUES(列值);

实例:

INSERT INTO users(id, name, age) VALUES(1102, 'DJun', 21);

而在MySQL中还有另一种形式:

INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…;

实例:

INSERT INTO users SET id = 1102, name = 'DJun', age = 21;

2)删除数据

通用语法:

(补充:[WHERE Clause] 表示的是筛选数据的语句 )

DELETE FROM table_name [WHERE Clause]

实例:

DELETE FROM users WHERE name='DJun';

3)修改数据

通用语法:

UPDATE table_name SET field1=new-value1, field2=new-value2[WHERE Clause]

实例:

UPDATE users SET name='DJun' WHERE id=1102;

4)查询数据

通用语法:

(补充:* 号表示查询全部的数据;若是该表中的每一列数据不是全部都要使用的话,将*改成如id,name等字段。数据量大的话这样处理可增加查询速度)

SELECT * FROM table_name [WHERE Clause];

实例:

用逗号分割,列出需要显示的字段

select id,name,age from users;

数据量大的话均存在数据重复的问题,若需要查询不重复记录该如何处理?如果需要按照条件查询该如何处理?如果是商品重复了,需要统计整合这个商品的数量该如何处理?


查询不重复的数据

通用语法:

select distinct 字段 from 表名;

实例:

 
  1. select distinct name from users;//查询名字不相同的用户;

  2. select distinct name,age from students;//查询名字和年龄同时不同的用户

注意:

 
  1. distinct必须放在最开头

  2. distinct只能使用需要去重的字段进行操作。 ----也就是说我distinct了name,age两个字段,我后面想根据id进行排序,是不可以的,因为只 能name,age两个字段进行操作.

  3. distinct去重多个字段时。就是说:几个字段同时重复时才会被过滤。

条件查询

通用语法:

select 字段 from 表名 where 条件;

实例:

select * from users where sex='男' and age>20;

筛选出来的数据如果需要按照年龄来升序(ASC)或降序(DESC)排序的话:

只需在SELECET的语句最后加上 by age ASC或 by age DESC。

如果希望只取出年龄最小的前五个人的数据的话:

select ... [limit 起始偏移量,行数]

SELECT * from users ORDER BY age ASC limit 0,5;

数据整合(聚合)

通用语法:

select 聚合函数(字段) 表名 [where Clause] [group by field1,field2...] [with rollup] [having 条件];

补充:

1. 聚合函数(字段) ,常用的四个聚合函数 : sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。

2.group by关键字 表示要进行分类聚合的字段。比如要按照部门分类统计员工数量,部门就应该写在group by 后面。

3.with rollup 是可选语法,表明是否对分类聚合后的结果进行再汇总

4.having 关键字表示对分类后的结果再进行条件过滤。

实例:

 
  1. //得到与id为1的年龄相同的用户的用户名并按照这些用户的注册时间按升序排列

  2. SELECT username,count(1) FROM users GROUP BY age ORDER BY createtime ASC;

  3.  
  4. //得到与id为1的年龄相同的用户且人数大于4的用户名

  5. SELECT username,count(1) FROM users GROUP BY age HAVING count(1)>4;

  6.  
  7. //统计与id为1的年龄相同的用户的薪水总额,最低薪资,最高薪资

  8. SELECT count(1),min(salary),max(salary) FROM users GROUP BY age;

实现增删查改,无非是执行相应的sql语句。或者说是执行动态的sql 语句,可以执行在程序中给sql 语句的某个参数赋值后,执行sql实现功能。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的 PHP 操作 MySQL 数据库的示例代码,实现增删改查的功能: 连接数据库: ```php <?php $host = 'localhost'; // 数据库主机名 $user = 'root'; // 数据库用户名 $password = 'password'; // 数据库密码 $database = 'test'; // 数据库名 // 创建连接 $conn = mysqli_connect($host, $user, $password, $database); // 检测连接是否成功 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } echo "连接成功"; ?> ``` 插入数据: ```php <?php $sql = "INSERT INTO users (name, email, age) VALUES ('John Doe', '[email protected]', '30')"; if (mysqli_query($conn, $sql)) { echo "新记录插入成功"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } // 关闭连接 mysqli_close($conn); ?> ``` 更新数据: ```php <?php $sql = "UPDATE users SET age='40' WHERE id=1"; if (mysqli_query($conn, $sql)) { echo "记录更新成功"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } // 关闭连接 mysqli_close($conn); ?> ``` 查询数据: ```php <?php $sql = "SELECT id, name, email, age FROM users"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 输出数据 while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. " - Age: " . $row["age"]. "<br>"; } } else { echo "0 条结果"; } // 关闭连接 mysqli_close($conn); ?> ``` 删除数据: ```php <?php $sql = "DELETE FROM users WHERE id=1"; if (mysqli_query($conn, $sql)) { echo "记录删除成功"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } // 关闭连接 mysqli_close($conn); ?> ``` 以上代码仅供参考,具体实现还需根据实际情况进行调整。同时,为了避免 SQL 注入等安全问题,请务必进行数据过滤和转义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值