PHP链接数据库

mac2022-06-30  89

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,循环结束。就可以把结果集中的所有数据逐行取出并显示。

实例:

<?php$sql = mysql_query("select * from table_name");//将表table_name的全部数据存放到$sql$row = mysql_fetch_row($sql);//获取$sql里面的第一个数据作为数组存储在$row中if ($_POST["Submit"]=="查询"){//如果从前端接收到的value为‘查询’    $keyword= $_POST["red"];//从前端接收到的查询关键字存储到$name    $sql = mysql_query("select * from table_name where color like '%".trim($keyword)."%'"); //执行模糊查询    $row = mysql_fetch_row($sql);  //逐行获取查询结果,返回值为数组}?>​​​​​​

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

实例:

方式一:

<?php $link=@Mysql_connect(‘URL’,’数据库账号’,’数据库密码’) or die (‘连接失败!’);Mysql_select_db(‘数据库名称’) or die (‘选择失败!’);?>方式二:

<?php$myhost = 'localhost:3306'; // mysql服务器主机地址$myusername = 'root'; // mysql用户名$mypassword = 'DJun'; // mysql用户名密码$conn = mysqli_connect($myhost , $myusername , $mypassword );if(! $connect ){ die('连接失败: ' . mysqli_error($connect ));}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 表名;实例:

select distinct name from users;//查询名字不相同的用户;select distinct name,age from students;//查询名字和年龄同时不同的用户注意:

distinct必须放在最开头distinct只能使用需要去重的字段进行操作。 ----也就是说我distinct了name,age两个字段,我后面想根据id进行排序,是不可以的,因为只 能name,age两个字段进行操作.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 关键字表示对分类后的结果再进行条件过滤。

实例:

//得到与id为1的年龄相同的用户的用户名并按照这些用户的注册时间按升序排列SELECT username,count(1) FROM users GROUP BY age ORDER BY createtime ASC;//得到与id为1的年龄相同的用户且人数大于4的用户名SELECT username,count(1) FROM users GROUP BY age HAVING count(1)>4;//统计与id为1的年龄相同的用户的薪水总额,最低薪资,最高薪资SELECT count(1),min(salary),max(salary) FROM users GROUP BY age;实现增删查改,无非是执行相应的sql语句。或者说是执行动态的sql 语句,可以执行在程序中给sql 语句的某个参数赋值后,执行sql实现功能。

转载于:https://www.cnblogs.com/liufuyuan/p/11448360.html

最新回复(0)