MySQL是一种关系型的数据库管理系统,MySQL中的数据存储在不同的表中,表格是相关数据的集合,包含行和列。表与表之间是有关联的。在web应用方面MySQL是最好的数据库管理系统应用之一。
MySQL是基于命令的
基础SQL语句
增删改查基本 sql 使用:
— 按条件查询
— SELECT FROM MyGuests WHERE firstname = 1
— 查询全部
— select from MyGuests
— 更新指定条件的 字段值
— update MyGuests set lastname = ‘www’ where firstname = 2
— 删除指定条件的 数据行
— delete from MyGuests where email = 2
— 新增数据
— insert into MyGuests (firstname, lastname,email) VALUES (‘22’, ‘ee’ , ‘17320770556@163.com’),(..,..)
php 连接数据库
php5及以上版本建议使用以下方式连接数据库:
MySQLi extension (i 意味着 improved)
PDO(php data object)
MySQLi 面向对象,提供了API接口,只针对语MySQL服务器
PDO面向对象,应用在12种不同的数据库中
两者都支持预处理语句,预处理语句可以防止SQL注入,对于web项目的安全性非常重要的
mysqli 函数打开非持久的mysql连接。
语法: mysqli(server, user, pwd);
server 规定连接的服务器,包括端口号,或者是本地服务,默认地址是localhost:3066(可选)
user 用户名(可选)
pwd 密码(可选)
// 连接数据库
$conn = mysqli_connect(“localhost”, “root”, “”);
// 检测连接
if (!$conn){
die(‘连接失败’ . mysqli_connect_error());
}
echo “连接成功”;
php 创建数据表
用 CREATE 的权限来创建和删除MySQL库
用 CREATE DATABASE 语法来创建库
创建一个名为sqlone的数据库
$sql = “CREATE DADABASE sqlone”;
if ($conn->query($sql) ==== true) {
echo “sqlone 数据库创建成功”;
} else {
echo “创建失败” . $conn->err;
}
php创建数据表
一个数据表有一个唯一的名称,并且有表和列组成。
使用 CREATE TABLE 语句来创建表。
创建表前,需要使用 use 数据库名称 来选择要操作的数据库。
在名为 sqlone 的数据库中创建一个名为 orders 的表
增删改查基本 sql 使用:
— 按条件查询
— SELECT FROM MyGuests WHERE firstname = 1
— update MyGuests set lastname = ‘www’ where firstname = 2
— 查询全部
— select from MyGuests
— 删除指定条件的 数据行
— delete from MyGuests where email = 2
— 新增数据
— insert into MyGuests (firstname, lastname,email) VALUES (‘22’, ‘ee’ , ‘17320770556@163.com’),(..,..)
insert 数据时,中文乱码问题
查询编码集,设置为 UTF-8 //查询show variables like 'character%';//设置set character_set_server = 'utf8';
在 PHP 页面中连接数据库时的配置;
PHP文件编码设置
//消息头部header(“Content-Type:text/html; charset=utf-8”);
//数据库连接方式$conn = new mysqli($servername,$username,$password,$dbname);
mysqli_set_charset($conn,’UTF8’);
//注意,下面这种方式不行!!!
$conn = new mysqli($servername,$username,$password,$dbname);
mysqli_query(“set names utf8”);
设置HTML页面编码
代码实操
1、监测数据库连接
$conn = mysqli_connect(“localhost”, “root”, “”, ‘orders’);
if (!$conn) {
die(‘连接失败:’ . mysqli_connect_error());
}
echo “连接成功!”;
2、创建一个名为orders的数据库
$orders = “CREATE DATABASE orders”;
if (mysqli_query($conn, $orders)) {
echo “数据库创建成功”;
} else {
echo “创建失败” . mysqli_error($conn);
}
3、在orders数据库中创建一个名为MyGest的数据表
$conn = mysqli_connect(“localhost”, “root”, “”, ‘orders’);
if (!$conn) {
die(‘连接失败:’ . mysqli_connect_error());
}
$gest = “CREATE TABLE MyGest(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(20) NOT NULL,
lastname VARCHAR(30) NOT NULL,
createdate TIMESTAMP
)”;
if (mysqli_query($conn, $gest)){
echo “数据表创建成功”;
} else {
echo “数据表创建失败”.mysqli_error($conn);
}
4、在创建的MyGest表中插入一条数据
$conn = mysqli_connect(“localhost”, “root”, “”, ‘orders’);
mysqli_set_charset($conn,’UTF8’);
if (!$conn) {
die(‘连接失败:’ . mysqli_connect_error());
}
$sql = “INSERT INTO MyGest(firstname, lastname) VALUES (‘李亚飞’, ‘红宝石’),(‘石倩霞’, ‘竭尽所能的’)”;
mysqli_query(‘set names UTF8’);
if (mysqli_query($conn, $sql)){
echo “数据插入成功”;
} else {
echo “数据插入失败”.mysqli_error($conn);
}
5、PDO方式的连接
$serverName = “localhost”;
try {
$conn = new PDO(“mysql:host=$serverName”, “root”, “”);
echo “连接成功”;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
6、删除MyGeset表中firstname为“刘丽”的数据
$conn = mysqli_connect(“localhost”, “root”, “”, ‘orders’);
mysqli_set_charset($conn,’UTF8’);
if (!$conn) {
die(‘连接失败:’ . mysqli_connect_error());
}
$dels = “DELETE FROM MyGest WHERE firstname=’刘丽’”;
// mysqli_query(‘set names UTF8’);
if (mysqli_query($conn, $dels)){
echo “数据删除成功”;
} else {
echo “数据删除失败”.mysqli_error($conn);
}
7、更新MyGest表中firstname=”刘丽” 为 “李明”
$conn = mysqli_connect(“localhost”, “root”, “”, ‘orders’);
mysqli_set_charset($conn,’UTF8’);
if (!$conn) {
die(‘连接失败:’ . mysqli_connect_error());
}
$updates = “UPDATE MyGest SET firstname=’李明’ WHERE firstname=’刘丽’”;
// mysqli_query(‘set names UTF8’);
if (mysqli_query($conn, $updates)){
echo “数据更新成功”;
} else {
echo “数据更新失败”.mysqli_error($conn);
}
8、从前端index_sql.php接收到数据,存储到news表中
$conn = mysqli_connect(‘localhost’, ‘root’, ‘’, ‘PHPlession’);
mysqli_set_charset($conn,’UTF8’);
if (!$conn) {
echo “连接失败”.mysqli_error($conn);
}
$newtitle = $_REQUEST[‘newtitle’];
$newimg = $_REQUEST[‘newimg’];
$newcontent = $_REQUEST[‘newcontent’];
$newdate = $_REQUEST[‘newdate’];
$newinfo = “INSERT INTO news(new_title, new_img, new_content, new_date) VALUES (‘“.$newtitle.”‘,’”.$newimg.”‘,’”.$newcontent.”‘, ‘“.$newdate.”‘)”;
if (mysqli_query($conn, $newinfo)) {
echo “更新成功”;
} else {
echo “更新失败” . mysqli_error($conn);
}
9、读取mysql数据库中news表的数据
header(“Content-Type: application/json; charset=UTF-8”);
$conn = mysqli_connect(‘localhost’, ‘root’, ‘’, ‘PHPlession’);
mysqli_query($conn,”SET NAMES utf8”);
if (!$conn) {
echo “连接失败”.mysqli_error($conn);
}
$data = “SELECT new_title, new_content, new_date FROM news”;
$result = mysqli_query($conn, $data);
$arr = array();
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$arrayName = array(‘new_title’ => $row[‘new_title’],’new_content’ => $row[‘new_content’],’new_date’ => $row[‘new_date’]);
array_push($arr, $arrayName);
}
$result = array(‘errorcode’ => 0, ‘result’ => $arr );
echo json_encode($result, JSON_UNESCAPED_UNICODE).’
‘;
}
else {
echo “0结果”;
}
mysqli_close($conn);
运行结果
语句解释:
PHP常量:JSON_UNESCAPED_UNICODE
函数:
json_encode() - 对变量进行 JSON 编码
说明:
json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] ) : string
参数:
options=JSON_UNESCAPED_UNICODE 不要编码Unicode
注意:支持PHP5.4+
