каталог
PHP Mysqli операции с базами данных
Подключение к базе данных
После php5.3 версии, вы хотите подключиться к базе данных, есть два варианта, один через
mysqli
другие внешние один через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();
Обратите внимание, что если вы используете другой порт (по умолчанию 3306), пустая строка для параметров базы данных, таких как: новый MySQLi ( «локальный», «имя пользователя», «пароль», «», порт)
Полная демо следующим образом:
<?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
добавить условие , при котором назад, в противном случае вся таблица будет пустой.