ディレクトリ
PHP mysqliのデータベース操作
データベースへの接続
PHP5.3バージョンの後、データベースに接続する、2つのオプションが、そこを通して一つであり
mysqli
、他の外側の1が通過されますpdo
。この記事では述べているということであればmysqli
、オブジェクト指向データベース書かれた操作。
データベースに接続する前に、変数の良いデータベースに保存されている基本的な接続情報を渡す必要があります。
$servername = "localhost"; // 地址
$username = "root"; // 用户名
$password = ""; // 密码
その後、できるmysqli
オブジェクトが作成されるインスタンス化します。そして、関連するパラメータ。
$m = new mysqli($servername,$username,$password);
あなたは、エラーが発生したかどうかを自分で判断することができます。
// 检测连接是否成功
if($conn->connect_error){
die("连接失败,错误:" . $conn->connect_error);
}
もちろん、データベースは接続後、接続を終了する必要があります。
$conn->close();
完全なデモ次のように:
<?php
// php 连接Mysql
// 通过mysqli
// 采用面向对象的写法来完成数据库的连接
// 设置基础数据库信息
$servername = "localhost";
$username = "root";
$password = "";
// 创建连接
$conn = new mysqli($servername,$username,$password);
// 检测连接是否成功
if($conn->connect_error){
die("连接失败,错误:" . $conn->connect_error);
}
// 否则连接成功
echo "连接成功!";
// 连接之后,还需要将连接关闭
$conn->close();
?>
mysqliのことで、データベースを作成します。
私たちは、データベース接続の成功を確実にするために必要なすべての最初の、mysqliのを介してデータベースを作成します。
$servername = "localhost";
$username = "root";
$password = "";
// 创建连接
$conn = new mysqli($servername,$username,$password);
if($conn->connect_error){
die("连接失败,错误:" . $conn->connect_error);
}
次の変数で、SQL文を保存します。
// 设置sql语句
$sql = "create database stu_01 default character set = 'utf8' ";
データベースを接続した後、我々は、データベースを作成し、成功したかどうかを確認するためにSQL文を送信する必要があります。
// 发送sql语句 并且验证是否创建成功
if($conn->query($sql) === TRUE){
echo "数据库创建成功.";
}else {
echo "数据库创建失败 ,错误信息为:" . $conn->error; // 如果失败输出错误信息
}
もちろん、最終的にはデータベースをクローズすることを忘れないでください。
// 关闭数据库
$conn->close();
新しいmysqliの(「localhost」を、「ユーザ名」、「パスワード」、「」、ポート):次のような別のポート(デフォルトは3306である)、データベースパラメータに空の文字列を、使用している場合があります
完全なデモ次のように:
<?php
$servername = "localhost";
$username = "root";
$password = "";
// 创建连接
$conn = new mysqli($servername,$username,$password);
if($conn->connect_error){
die("连接失败,错误:" . $conn->connect_error);
}
// 设置sql语句
$sql = "create database stu_01 default character set = 'utf8' ";
// 发送sql语句 并且验证是否创建成功
if($conn->query($sql) === TRUE){
echo "数据库创建成功.";
}else {
echo "数据库创建失败 ,错误信息为:" . $conn->error; // 如果失败输出错误信息
}
// 关闭数据库
$conn->close();
?>
mysqiでデータテーブルを作成します。
することによりmysqli
、我々は、データベース内のデータテーブルを作成し、そうしているので、まずは、基本的なデータベース接続を実行でき、データテーブルを作成し、あなたは、それに注意を払う必要があり
、追加の構成に関する情報のデータベースの必要性:
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_01"; // 要操作的数据库名
// 创建连接
$conn = new mysqli($servername,$username,$password,$dbname); // 第四个参数
if($conn->connect_error){
die("连接失败,错误:" . $conn->connect_error);
}
次は、データテーブルを作成するには良いSQL文を設定する必要があります。
create table stu_info(
id int(6) unsigned auto_increment primary key,
firstname varchar(30) not null,
lastname varchar(30) not null,
email varchar(50),
reg_date timestamp
)
SQLのデータ型について、あなたが訪問することができます。https://www.runoob.com/sql/sql-datatypes.html。
上記のSQLの説明の一部:
NOT NULL - 每一行都必须含有值(不能为空),null 值是不允许的。
DEFAULT value - 设置默认值
UNSIGNED - 使用无符号数值类型,0 及正数
AUTO INCREMENT - 设置 MySQL 字段的值在新增记录时每次自动增长 1
PRIMARY KEY - 设置数据表中每条记录的唯一标识。 通常列的 PRIMARY KEY 设置为 ID 数值,与 AUTO_INCREMENT 一起使用。
各テーブルには、主キーは、一意の値を含まなければならない、(「ID」カラムとして存在する)主キーを有するべきです。
SQLを実行するために、上記のSQLステートメントは、変数に格納されてもよいです。
// 使用sql 创建数据表
$sql = "create table stu_info(
id int(6) unsigned auto_increment primary key,
firstname varchar(30) not null,
lastname varchar(30) not null,
email varchar(50),
reg_date timestamp
)";
SQL文の上に配置された、SQLステートメントは、メソッドを直接問い合わせる送信することができ、彼らが成功したかどうかを決定します。
if($conn->query($sql) === TRUE){
echo "数据表创建成功。";
}else {
echo "数据表创建失败,错误信息:" . $conn->error;
}
// 关闭数据库连接
$conn->close();
完全なデモ次のように:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_01";
// 创建连接
$conn = new mysqli($servername,$username,$password,$dbname);
if($conn->connect_error){
die("连接失败,错误:" . $conn->connect_error);
}
// 使用sql 创建数据表
$sql = "create table stu_info(
id int(6) UNSIGNED auto_increment primary key,
firstname varchar(30) not null,
lastname varchar(30) not null,
email varchar(50),
reg_date timestamp
)";
if($conn->query($sql) === TRUE){
echo "数据表创建成功。";
}else {
echo "数据表创建失败,错误信息:" . $conn->error;
}
// 关闭数据库连接
$conn->close();
?>
mysqliのことで、データテーブルに情報を挿入
まず、正しい接続を決定するために、データベースおよびデータベースに接続します。
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_01";
// 创建连接
$conn = new mysqli($servername,$username,$password,$dbname);
if($conn->connect_error){
die("连接失败,错误:" . $conn->connect_error);
}
次に、SQL文を設定します。
// 设置插入数据的sql语句
$sql = "insert into stu_info(firstname,lastname,email) values('张三','张小三','[email protected]')";
送信された優れたSQL文を設定します:
// 发送sql 语句
if($conn->query($sql) === TRUE){
echo "新记录添加成功!";
}else {
echo "新记录添加失败,错误信息:" . $conn->error;
}
// 关闭连接
$conn->close();
完全なデモ次のように:
<?php
header("Content-type:text/html;Charset=utf-8");
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_02";
// 创建连接
$conn = new mysqli($servername,$username,$password,$dbname);
if($conn->connect_error){
die("连接失败,错误:" . $conn->connect_error);
}
// 设置插入数据的sql语句
$sql = "insert into stu_info(firstname,lastname,email) values('张三','张小三','[email protected]')";
// 发送sql 语句
if($conn->query($sql) === TRUE){
echo "新记录添加成功!";
}else {
echo "新记录添加失败,错误信息:" . $conn->error;
}
// 关闭连接
$conn->close();
?>
保存されたデータとき文字化けしている場合は、解決するために、次のコードを使用することができます。
mysqli_set_charset($conn,'utf8'); // 解决乱码问题
完全なデモ次のように:
<?php
header("Content-type:text/html;Charset=utf8");
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_02";
$conn = new mysqli($servername,$username,$password,$dbname);
mysqli_set_charset($conn,'utf8'); // 解决乱码问题
if($conn->connect_error){
echo "连接失败,错误信息:" . $conn->connect_error;
}
// 设置sql语句
$sql = "insert into stu_info(firstname,lastname,email) values('李四','李小思','[email protected]')";
// 发送sql
if($conn->query($sql) === TRUE) {
echo "新纪录添加成功.";
}else {
echo "新纪录添加失败,错误信息:" . $conn->connect_error;
}
// 关闭
$conn->close();
私たちは、テーブル内のデータにメッセージを挿入する上で、のは、データベースへの情報の使い捨て挿入複数のピースを試してみましょう:
完全なデモ次のように:
<?php
// 数据库连接基本信息
header("Content-type:text/html;Charset=utf8");
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_02";
$conn = new mysqli($servername,$username,$password,$dbname);
mysqli_set_charset($conn,'utf8'); // 解决乱码问题
// 检查链接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 下面开始插入多条数据
$sql = "insert into stu_info(firstname,lastname,email) values('张三丰','张君宝','[email protected]');";
// 使用.= 的形式进行sql语句连接
$sql .= "insert into stu_info(firstname,lastname,email) values('东方不败','东方拜拜','[email protected]');";
// 发送sql
if($conn->multi_query($sql) === TRUE) {
echo "数据添加成功!";
}else{
echo "数据添加失败,错误信息如下: " . $conn->connect_error;
}
// 关闭
$conn->close();
上記のコードでは、使用.=
スプライシングSQL文の形式、複数のデータを達成するために、使い捨ての挿入のために。
各SQL文はセミコロンで区切らなければならないことに注意してください。
上記のコードでは、我々は、クエリメソッドmulti_queryの置き換え()メソッドは、データ時間の複数に挿入円滑に実現することができます。
データmysqliのを読みます
我々はmysqliのを介して挿入上記のデータは、ここでは、データを読み出す方法を学びに来ます:
あなたは、すべてのデータを照会する必要がある場合:
<?php
// 数据库连接基本信息
header("Content-type:text/html;Charset=utf8");
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_02";
$conn = new mysqli($servername,$username,$password,$dbname);
mysqli_set_charset($conn,'utf8'); // 解决乱码问题
// 检查链接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 设置sql 语句,查询全部数据
$sql = "select * from stu_info";
// 发送sql语句,获得查询结果
$result = $conn->query($sql);
// 如果查询的结果>0表示查询成功,那么就可以将数据输出
// 函数 num_rows() 判断返回的数据。
// 如果返回的是多条数据,函数 fetch_assoc() 将结合集放入到关联数组并循环输出。
if($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()){
echo "id" . $row['id'] . '- Name:' . $row['firstname'] . " " . $row['lastname'] . '<br>';
}
}else {
echo "暂无数据";
}
// 关闭
$conn->close();
上記のデモでは、使用sql
、次のように声明を:
select * from stu_info;
上記の文は、我々だけでデータの一部かどうかを確認したい、私たちはすべてのデータを照会するために助けることができるか、それを変更することができます。
select id ,firstname,lastname from stu_info;
アプリケーションの声明
我々は、クエリデータの元の状態に基づいて条件を追加することができる場合には、のは、例えば、より正確に見つけてみましょう:
select * from stu_info where id > 3;
mysqliのを介してデータを削除します。
mysqliのは、データベース内のデータを削除してのは見てみましょう。
<?php
// 数据库连接基本信息
header("Content-type:text/html;Charset=utf8");
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_02";
$conn = new mysqli($servername,$username,$password,$dbname);
mysqli_set_charset($conn,'utf8'); // 解决乱码问题
// 检查链接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 设置sql
$sql = "delete from stu_info where lastname = '李小思';";
// 发送sql
if($conn->query($sql) === TRUE) {
echo "删除成功";
}else {
echo "删除失败,错误信息为:" . $conn->connect_error;
}
$conn->close();
あなたはデータを削除すると、必ず
delete from stu_info
戻って、そうでない場合は、テーブル全体が空になります条件を追加します。