PHP(14)使用mysqli操作MySQL

1.连接MySQL数据库

<?php
$mysqli = new mysqli("localhost", "root", "123456", "mydb");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}else{
    echo "success connected!";
}

2.执行DDL语句

可以通过上面创建的$mysqli对象的query方法来执行sql语句,sql语句作为一个字符串传给query()方法

query()支持将语句执行的执行结果缓存到客户端,与real_query()和multi_query()方法相比,更常用。

$mysqli->query("drop table if exists test");
$mysqli->query("create table test(id int primary key auto_increment)");
$mysqli->query("insert into test values(1)");

如果需要连续执行多条sql语句则必须要使用multi_query(),多条sql语句使用分号隔开。

$sql="insert into test values(400);select * from test;";
$mysqli->multi_query($sql);
$res = $mysqli->store_result();
var_dump($res->fetch_all(MYSQLI_ASSOC));
$res->close();

3.执行查询语句

$mysqli对象通过query方法执行查询语句返回一个结果对象$res,该对象缓存了查询的结果,通过$res对象的fetch_assoc()方法可以一次返回一行数据,该行数据被存到一个索引数组当中,通过数据字段名作为索引可以取得对应的数据

$res = $mysqli->query("select * from test");
if($res != null){
    while($row = $res->fetch_assoc()){
        echo $row["id"];
        echo gettype($row["id"]);//string类型
    }
}

注意mysqli的query()方法执行的是没有预编译的语句,通过query()返回的结果默认都是字符串类型(string),如果想要使得结果返回正确的PHP的数值类型,可以为mysqli添加属性MYSQLI_OPT_INT_AND_FLOAT_NATIVE

$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);

4.执行预编译语句

通过执行预编译语句,可以为sql语句动态指定参数。

$stmt = $mysqli->prepare("insert into test values(?)");//预编译sql语句
$id = 9;
$stmt->bind_param("i",$id);//绑定参数
$stmt->execute();//执行sql语句
$stmt->close();//关闭预编译语句,释放资源,切记不要忘了执行

与非预编译执行的sql语句相比,通过预编译执行的语句的查询结果返回的值会自动转为正确的类型(而非都是string类型)。

$stmt = $mysqli->prepare("select * from test");
$stmt->execute();
$res = $stmt->get_result();//获取查询结果
while($row = $res->fetch_assoc()){
    echo $row["id"];
    echo gettype($row["id"]);//integer 而不是string
}

使用预编译的sql语句可以有效的防止sql注入,增加对数据库操作的安全性。

5.执行存储过程

$mysqli->query("create procedure p(IN id_val int) begin insert into test(id) values(id_val);END;");
$mysqli->query("call p(10)");//执行存储过程
$res = $mysqli->query("select * from test");
var_dump($res->fetch_all());

6.执行事务

MySQL是否支持事务取决于它的存储引擎,从MySQL5.5开始,默认的存储引擎改为InnoDB,InnoDB完全支持事务的ACID特性。

$mysqli->autocommit(false);//设置自动提交事务为false
$mysqli->query("insert into test values(100)");
$mysqli->rollback();//回滚事务,100没有插入
$mysqli->query("insert into test values(101)");
$mysqli->commit();//提交事务,仅仅插入了101

7.元数据Metadata

元数据用来描述结果集中的列,通过mysqli_result接口可以获得元数据的信息

$res = $mysqli->query("select * from test");
var_dump($res->fetch_fields());

还有很多方法没有涉及到,这里仅仅涉及了常用的一些方法,要了解更多方法可以自行查找PHP Mannual。

时间: 2024-10-16 02:50:02

PHP(14)使用mysqli操作MySQL的相关文章

PHP基础(13)使用mysqli操作MySQL数据库

mysqli提供了两种接口操作数据库MySQL 面向过程 2.  面向对象 <?php /*面向过程*/ $mysqli = mysqli_connect("localhost", "root", "123456", "mydb"); if (mysqli_connect_errno($mysqli)) {     echo "Failed to connect to MySQL: " . mysql

PHP使用mysqli操作MySQL数据库

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

mysqli操作mysql数据库(面向对象风格)

//1.创建MySQLi对象 echo "<meta charset='utf-8'>"; $mysqli=new MySQLi("localhost","root","root","test"); if($mysqli->connect_error){ die("连接失败".$mysqli->connect_error); } //2.操作数据库(发送sql)

mysqli扩展库操作mysql数据库

配置环境 配置php.ini文件让php支持mysqli扩展库 extension=php_mysqli.dll 建库建表 详见博客 “mysql扩展库操作mysql数据库” 查询数据库 1 <?php 2 //mysqli扩展库操作mysql数据库,面向对象 3 $mysqli=new MySQLi("localhost","root","root","test"); 4 if($mysqli->connect_

php 通过mysqli 操作数据库mysql

目录 php mysqli 操作数据库 连接数据库 通过mysqli 创建数据库 通过mysqi 创建数据表 通过mysqli向数据表中插入信息 通过mysqli 读取数据 where语句的应用 通过mysqli删除数据 php mysqli 操作数据库 连接数据库 在php5.3版本之后,想要连接数据库有两种方案,一种是通过mysqli,另外外一种是通过pdo.本文主要说的是如果通过mysqli面向对象的写法操作数据库. 在连接数据库之前,需要先通过变量存储好数据库的基本连接信息. $serv

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 作为一个高要求高完美的男人,实在受不了这提示.躲着他也不行——解决

python操作MySQL

本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 下载安装 ? 1 pip3 install pymysql 使用操作 1.执行SQL + ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #!/usr/bin/env python # -*-

php最全基础,数组,函数,超全局变量,时间,回话,文件,php操作mysql

共享一份学习php最全基础语法知识的笔记 原文链接:http://www.cnblogs.com/oscn/p/3607757.html:略有修改   http://www.cnblogs.com/ljab/p/6125995.html略有修改 1.判断php短标记<??>是否适用,查看php配置文件php.ini中的"short_open_tag = On"2.官方的标记<?php?>  , <script language="php"

mac安装mysql及终端操作mysql与pycharm的数据库可视化

一.Mac安装mysql 首先下载mysql,地址:https://dev.mysql.com/downloads/mysql/ 然后已知安装就好了,会出现让你记住密码的提示,然后就安装好了.... 更改密码,可以参考:http://blog.csdn.net/soft2buy/article/details/50223373 二.终端操作mysql 首先在系统偏好里面找到mysql,如下图左一,然后点开,运行mysql,使其呈现running,如下图右一.     然后打开终端,输入mysql