php 通过mysqli 操作数据库mysql

目录

  • php mysqli 操作数据库

    • 连接数据库
    • 通过mysqli 创建数据库
    • 通过mysqi 创建数据表
    •  通过mysqli向数据表中插入信息
    • 通过mysqli 读取数据
    •  where语句的应用
    •  通过mysqli删除数据

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();

完整的demo如下:

<?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),为数据库参数添加空字符串,如: new mysqli("localhost", "username", "password", "", port)

完整demo如下:

<?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语句,可以直接通过query方法发送sql语句,并且判断是否执行成功。

if($conn->query($sql) === TRUE){
    echo "数据表创建成功。";
}else {
    echo "数据表创建失败,错误信息:" . $conn->error;
}

// 关闭数据库连接
$conn->close();

完整的demo如下:

<?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();

完整的demo如下:

<?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'); // 解决乱码问题

完整demo如下:

<?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();

上面我们向数据表中插入了一条信息,下面我们来尝试一次性向数据库中插入多条信息:

完整demo如下:

<?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语句必须用分号隔开。
在上面的代码中,我们将query方法换成了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();

在上面的demo中,我们使用的sql语句如下:

select * from stu_info;

上面的语句可以帮助我们查询全部的数据,我们如果只是想要查询一部分的数据也可以更改一下:

select id ,firstname,lastname from stu_info;

 where语句的应用

我们在查询数据的时候可以在原本的条件的基础之上加上where条件,让查找更加的精确,例如:

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后面加where 条件,否则整个数据表都会被清空。

原文地址:https://www.cnblogs.com/liujunhang/p/10926632.html

时间: 2024-10-27 17:10:57

php 通过mysqli 操作数据库mysql的相关文章

Mysqli 操作数据库

每次用到mysql_connect连接数据库的时候都会提示: 1 Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in E:\wamp\www\myquote\includes\mysql_connect.php on line 5 作为一个高要求高完美的男人,实在受不了这提示.躲着他也不行——解决

mysqli操作数据库

一. 建立和断开连接 与MySQL数据库交互时,首先要建立连接,最后要断开连接,这包括与服务器连接并 选择一个数据库,以及最后关闭连接.与mysqli几乎所有的特性一样,这一点可以使用面向 对象的方法来完成,也可以采用过程化的方式完成. 1.创建一个mysqli的对象 $_mysqli = new mysqli(); 2.连接MySQL的主机.用户.密码.数据库 $_mysqli->connect('localhost','root','yangfan','guest'); 3.创建带连接参数的

使用Mysqli操作数据库

一.mysql与mysqli的概念相关: 1.mysql与mysqli都是php方面的函数集,与mysql数据库关联不大. 2. 在php5版本之前,一般是用php的mysql函数去驱动mysql数据库的,比如mysql_query()的函数,属于面向过程3.在php5版本 以后,增加了mysqli的函数功能,某种意义上讲,它是mysql系统函数的增强版,更稳定更高效更安全,与mysql_query()对应的有 mysqli_query(),属于面向对象,用对象的方式操作驱动mysql数据库 二

在PHP中使用Mysqli操作数据库

PHP的 mysqli 扩展提供了其先行版本的所有功能,此外,由于 MySQL 已经是一个 具有完整特性的数据库服务器 , 这为PHP 又添加了一些新特性 . 而 mysqli 恰恰也支持了 这些新特性. 一. 建立和断开连接 与 MySQL数据库交互时,首先要建立连接,最后要断开连接,这包括与服务器连接并 选择一个数据库 , 以及最后关闭连接 .与 mysqli 几乎所有的特性一样 , 这一点可以使用面向 对象的方法来完成,也可以采用过程化的方式完成. 1. 创建一个 mysqli 的对象 $

PHP MysqlI操作数据库(转)

1连接数据库. Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->//procedural style $mysqli =  mysqli_connect('host','username','password','database_name');//object oriented style (recommended) $mysqli = new

mysqli 操作数据库(转)

从php5.0开始增加mysql(i)支持 , 新加的功能都以对象的形式添加 i表示改进的意思 功能多.效率高.稳定 编译时参数: ./configure --with-mysql=/usr/bin/mysql_config \ #使用 Mysql ClientLibrary(libmysql)构建 --with-mysqli=mysqlnd \ #使用 Mysql Native Dirver 即mysqlnd --with-pdo-mysql=mysqlnd #使用 Mysql Native

JDBC实现用于操作数据库Mysql的工具类JDBCTools

下面用一个统一的工具类封装一套用于数据库的JDBC操作:包括 1)获取数据库链接资源  2)释放数据库链接资源,包括Connection,Statement,PreparedStatement,ResultSet等 3)数据库的更新操作,包括插入,删除,修改  4)数据库的查询操作 首先是1)获取数据库链接资源 /** * 获取数据库链接的静态方法 这样子就保证了只加载一次文件的操作 * @return * @throws Exception */ public static Connectio

python 操作数据库(mysql)

1.安装插件网上很多不在啰嗦. 2.连接数据库后创建一个表 MySQLdb conn = MySQLdb.connect(         =,         =,         =,         =,         =,         ) cur = conn.cursor() cur.execute() 3.增加一条数据 MySQLdb conn = MySQLdb.connect(         =,         =,         =,         =,     

MYSQLI - mysqli操作数据库

<?php //模型类 class Model { //数据库连接 private $_conn = NULL; //where语句 private $_where = NULL; //表名称 private $_tableName = NULL; //构造方法,接收表名称 public function __construct($tabName){ //给属性赋值 $this->_tableName = $tabName; //连接数据库 $this->_conn = mysqli_c