
最近做的项目后端要自己写,总结一下数据库基本的连接、增删查改等语句以及相应功能利用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] => simmzl
- MYSQL_NUM- 数字数组,如:[0] => simmzl
- MYSQL_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"; |