記事のディレクトリ
MySQL
- MySQLはデータベースの名前です
- PHPで動作するより良いデータベース
- フロントエンドはバックエンドからのデータを要求し、バックエンドはデータベース内のデータを照会してフロントエンドに返します
- 次に、PHPを使用してデータベースを操作する方法について説明します。
MySQL 是最流行的关系型数据库管理系统(非关系型数据库简略介绍)
关系数据库管理系统(Relational Database Management System)的特点
1.数据以表格的形式出现
2.每行为各种记录名称
3.许多的行和列组成一张表单
4.若干的表单组成database
5.主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
データベースのデータ型
- 数値型
の種類 | サイズ | 説明 |
---|---|---|
tinyint | 1バイト | 小さい整数値 |
smallint | 2バイト | 大きな整数値 |
ミディアムイント | 3バイト | 大きな整数値 |
intまたはinteger | 4バイト | 大きな整数値 |
bigint | 8バイト | 非常に大きな整数値 |
浮く | 4バイト | 単精度浮動小数点値 |
ダブル | 8バイト | 倍精度浮動小数点値 |
10進数 | 10進値 |
- 日付と時刻のタイプ
の種類 | フォーマット | 説明 |
---|---|---|
日付(日付) | YYYY-MM-DD | 日付値 |
TIME(時間) | HH:MM:SS | 時間値または期間 |
年(年) | YYYY | 年の値 |
DATETIME(日時) | YYYY-MM-DD HH:MM:SS | 日付と時刻の混合値 |
タイムスタンプ(タイムスタンプ) | YYYYMMDD HHMMSS | タイムスタンプ |
- 文字列型
の種類 | サイズ | 説明 |
---|---|---|
CHAR(char) | 0〜255バイト | 固定長文字列 |
VARCHAR(varchar) | 0〜65535バイト | 可変長文字列 |
TINYBLOB(tinyblob) | 0〜255バイト | 255文字以下のバイナリ文字列 |
TINYTEXT(tinytext) | 0〜255バイト | 短いテキスト文字列 |
BLOB(blob) | 0-65535バイト | バイナリ形式の長いテキストデータ |
TEXT(テキスト) | 0-65535バイト | 長いテキストデータ |
MEDIUMBLOB(ミディアムブロブ) | 0-16 777215バイト | バイナリ形式の中程度の長さのテキストデータ |
MEDIUMTEXT(ミディアムテキスト) | 0-16 777215バイト | 中程度の長さのテキストデータ |
LONGBLOB(longblob) | 0-4 294 967295バイト | バイナリ形式の非常に大きなテキストデータ |
LONGTEXT(ロングテキスト) | 0-4 294 967295バイト | 非常に大きなテキストデータ |
PHPオペレーティングデータベース
- 以前は、データベースを簡単に理解するだけでした。すべてを覚える必要はなく、理解するだけです。
- 次に、phpを使用してmysqlデータベースにリンクし、データを追加、削除、変更、およびチェックします。
- データベースを操作するには、php構文に加えて、mysqlsqlステートメントも必要です。
- phpを使用してデータベースを操作する手順
- データベースとのリンクを確立する
- SQLステートメントを使用してデータベースを操作します
- 結果を得る
- データベースへのリンクが壊れています
データベースとのリンクを確立する
- php5構文:
mysql_connect('ip地址','数据库用户名','数据库密码')
mysql_select_db('你要操作的小仓库名称')
- php7構文:
mysqli_connect('ip地址','数据库用户名','数据库密码','你要操作的小仓库名称')
<?php
$link = mysqli_connect('127.0.0.1','root','root','student');
?>
-我们有了链接信息`$link`以后就可以继续操作数据库了
SQLステートメントを実行する
-
php5構文:
mysql_query('你要执行的sql语法',连接信息)
-
php7構文:
mysqli_query(连接信息,'你要执行的sql语法')
<?php
# 避免中文乱码
mysqli_query($link,"set names utf8");
# 下面就是使用SQL语句对数据库进行操作
$res = mysqli_query($link,"SELECT * FROM student");
?>
分析データ
- php5構文:
解析本行数据:mysqli_fetch_assoc(要解析的数据);
没有解析全部结果的方法
- php7構文:
解析本行数据:mysqli_fetch_assoc(要解析的数据);
解析所有数据:mysqli_fetch_all(要解析的数据,MYSQLI_ASSOC);
<?php
# 解析所有行的数据
$arr = mysqli_fetch_all($res,MYSQLI_ASSOC);
# 转json查看获取到的结果
print_r(json_encode($arr));
?>
リンクを閉じる
-
すべてが使い果たされた後、データベースリンクを閉じる方がよいでしょう
-
php5構文:
mysql_close(链接信息);
-
php7構文:
mysqli_close(链接信息);
<?php
mysqli_close($link);
?>
完全な手順
- 操作の完全なステップを書いてみましょう
<?php
$link = mysqli_connect('127.0.0.1','root','root','student');
mysqli_query($link,"set names utf8");
$res = mysqli_query($link,"SELECT * FROM student");
$arr = mysqli_fetch_all($res,MYSQLI_ASSOC);
print_r(json_encode($arr));
mysqli_close($link);
?>
一般的に使用されるSQLステートメント
- データベースの操作方法を言ったばかりです
- ここで、データベースの操作時に一般的に使用されるSQLステートメントについて学習します。
- データベース操作はこれらのSQLステートメントに依存しています
文章を確認する
<?php
# 查询 student 这个表里面的所有数据
$sql = 'SELECT * FROM `student`';
# 查询 student 表中的数据里面 gender 为 男 的数据
$sql = 'SELECT * FROM `student` WHERE `gender`="男"';
# 查询 student 表中的数据里面 age 大于 18 的数据
$sql = 'SELECT * FROM `student` WHERE `age`>18';
# 查询 student 表中的数据里面 age 大于 18 且 gender 为 男 的数据
$sql = 'SELECT * FROM `student` WHERE `age`>18 AND `gender`="男"';
# 查询 student 表中的数据里面 age 小于 22 或者 age 大于 28 的数据
$sql = 'SELECT * FROM `student` WHERE `age`<22 OR `age`>28';
# 查询 student 表中的数据里面从 第几条开始 查询多少条
$sql = 'SELECT * FROM `student` LIMIT 0, 10';
# 先按照条件筛选出数据以后再进行分页查询
# 下面是查询表中所有 age>18 且 性别为男的所有数据,查出来以后从第 10 条开始查 10 条
$sql = 'SELECT * FROM `student` WHERE `age`>18 AND `gender`="男" LIMIT 10, 10';
# 查询表的模糊查询
# 下面表示查询表中所有数据里面 name 字段中包含 "三" 字的数据
$sql = 'SELECT * FROM `student` WHERE `name` LIKE "%三%"';
# 查询排序,查询的时候按照某一个字段升序或降序排序
$sql = 'SELECT * FROM `student` ORDER BY `age` ASC';
$sql = 'SELECT * FROM `student` ORDER BY `age` DESC';
?>
文を追加する
<?php
# 向表中增加一条数据,再增加的时候主键不能由我们书写,而是 mysql 数据库自己递增
$sql = 'INSERT INTO `student` VALUES(null, "张三", 18, "男", 1913, 100)';
# 插入固定几个键的数据,其他的用默认值
$sql = 'INSERT INTO `student` (`name`, `age`) VALUES("李四", 22)';
?>
ステートメントを削除する
<?php
# 删除表中 id 为 100 的数据
$sql = 'DELETE FROM `student` WHERE `id`=100';
# 删除表中 name 为 张三 的数据
$sql = 'DELETE FROM `student` WHERE `name`="张三"'
?>
ステートメントを変更する
<?php
# 更新一条 id 为 100 的数据中的 name 字段的值和 age 字段的值
$sql = 'UPDATE `student` SET `name`="张三", `age`=10 WHERE `id`=100'
# 更新数据的时候让所有的数据增加一些内容
$sql = 'UPDATE `student` SET `age`=age+1'
?>