
最近做的项目后端要自己写,总结一下数据库基本的连接、增删查改等语句以及相应功能利用PHP实现。
连接/关闭 MySQL主机
连接
mysql_connect() 函数打开非持久的 MySQL 连接,它最常用到的三个参数是MySQL主机名称、用户名、密码。
1  | // php  | 
删除
1  | // 关闭mysql连接  | 
执行MySQL语句
mysql_query(query,connection)函数执行一条 MySQL 查询,如果查询执行不正确则返回 FALSE。
queryMySQL语句connection主机连接,如果未规定,则使用上一个打开的连接。
新建/删除 数据库
新建
MySQL语句:CREATE DATABASE my_db;
1  | // 定义sql语句  | 
删除
MySQL语句:DROP DATABASE my_db;
1  | $sql = "DROP DATABASE my_db";  | 
新建/删除 数据表
新建
1  | CREATE TABLE table_name (column_name column_type);  | 
column_name为列名,即字段名column_type为该字段属性
phpMyAdmin:

1  | $sql = "CREATE TABLE `machine_data`.`00000003` (  | 
删除
1  | DROP TABLE table_name ;  | 
向表中插入数据(增)INSERT
1  | INSERT INTO table_name ( field1, field2,...fieldN )  | 
例如用户注册功能:
1  | // POST接收(默认已运行addslashes()转义字符)  | 
删 DELETE
1  | DELETE FROM table_name [WHERE Clause]  | 
ps: 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
例如删除用户名为simmzl的用户:
1  | $sql = " DELETE FROM user WHERE username = simmzl ";  | 
查 SELECT
SELECT
1  | SELECT column_name,column_name... FROM table_name  | 
- 也可以使用
*代替column_name,表示查询所有。 LIMIT设定返回的记录数OFFSET设定开始查询的数据偏移量。默认情况下偏移量为0。
例如查询用户名为simmzl的用户信息:
1  | // 数据库输出编码  | 
ORDER BY 排序
1  | ORDER BY field1, [field2...] [ASC [DESC]]  | 
ASC升序DESC降序
例如将所有用户信息输出并按照username升序排序:
1  | $sql = "SELECT * FROM user ORDER BY username ASC";  | 
mysql_fetch_array()
mysql_query() 仅对 SELECT语句返回一个资源标识符,因此还需要使用mysql_fetch_array(data,array_type)将取得的数据转成数组。
array_type有三个值:
MYSQL_ASSOC- 关联数组,如: [username] => simmzlMYSQL_NUM- 数字数组,如:[0] => simmzlMYSQL_BOTH- 默认。同时产生关联和数字数组
因此,在执行$result = mysql_query($sql, $con)后,还需执行
1  | // 转成关联数组  | 
1  | Array  | 
在当mysql_query()查询结果有多行时,依次调用mysql_fetch_array()将返回结果集中的下一行,如果没有更多行则返回 FALSE。
因此使用while循环取出所有行数据:
1  | while($tmp[] = mysql_fetch_array($result,MYSQL_ASSOC)){};  | 
json_encode()
将数组转成前端想要的JSON格式
1  | echo json_encode($res);  | 
1  | [  | 
json_decode()
相反,将JSON转成数组。
改 UPDATE
1  | UPDATE table_name SET field1=new-value1, field2=new-value2  | 
例如修改simmzl的密码和邮箱:
1  | $sql = "UPDATE user SET pwd = xxxx, email = hr@simmzl.cn WHERE username = simmzl";  |