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

mysqli提供了两种接口操作数据库MySQL

  1. 面向过程

2.  面向对象

<?php
/*面向过程*/
$mysqli = mysqli_connect("localhost", "root", "123456", "mydb");
if (mysqli_connect_errno($mysqli)) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$res = mysqli_query($mysqli, "select * from mytb");
$row = mysqli_fetch_assoc($res);
echo $row[‘_msg‘];

/*面向对象 建议使用第二种*/
$mysqli = new mysqli("localhost", "root", "123456", "mydb");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}

$res = $mysqli->query("select * from mytb");
while($row = $res->fetch_assoc()){
    echo $row["id"]." ".$row["age"]." ".$row["name"]."\n";
}
?>

为了统一,下面仅仅使用面向对象的方式进行讲解。

mysqli支持持久连接persistent connection,持久连接在使用完后不会关闭,而是放到连接池,如果一个请求使用与上次相同的主机名,密码,端口,数据库的话,则会继续使用连接池中的连接,而不是重新新建一个连接。

mysqli->query(statements)会将得到的数据结果缓存到客户端的内存中,以备使用。

mysqli->real_query("SELECT id FROM test ORDER BY id ASC");结果仍然在mysql server上以备client读取,而不会立即缓存到客户端,PHP占用内存变小,但是MYSQL服务器的压力变大。

查询得到的数据默认都是字符串,除非设定MYSQLI_OPT_INT_AND_FLOAT_NATIVE选项

$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);这样得到的数据会自动根据数据库中数据的类型来来讲数据转化。

<?php
$mysqli = new mysqli("localhost", "root", "123456", "mydb");
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE,1);//设定自动转换
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}

$res = $mysqli->query("select * from mytb");
while($row = $res->fetch_assoc()){
    echo $row["id"].gettype($row["id"]);//数字类型
}

Mysql数据库支持预编译的sql语句,这样sql语句接受参数,而且实现相同sql语句的高效执行。

预编译语句的执行包括两个阶段1.预编译  2.绑定参数 并且执行

<?php
$mysqli = new mysqli("localhost", "root", "123456", "mydb");
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE,1);
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}
if($stmt = $mysqli->prepare("insert into mytb(id,age,name)values(?,?,?)")){/*预编译*/
  $id = 4;
  $age = 28;
  $name = "shit";
  $stmt->bind_param("iis",$id,$age,$name);/*绑定参数*/
}
if($stmt->execute()){/*执行*/
    echo "success!";
}

注意:不同于非预编译执行的语句,预编译语句执行的返回结果会会自动将数据类型转化为数据库中正确的类型(而非全是字符串)。

时间: 2024-10-19 14:06:08

PHP基础(13)使用mysqli操作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]PHP编程操作Mysql数据库的三种方式

当我开始去接触PHP的时候,真切的感受到其所具有的魅力,本着学习的态度和打破固有的语言和模式的想法,开始了PHP之旅,总的来说,走的还是比较顺利,在其中能够看到C,Java,Perl影子,学习曲线不大,但是做好产品仍然有着一条漫漫长路. 多余的话不说了,慢慢感受和领悟,本文主要讲述PHP操作数据库的三种扩展. 如下图是PHP访问数据库的三种扩展方式: 下面举出三种方式访问数据库并查询数据的实例代码: 1.mysql扩展 <?php //1:获取数据库连接 $connection = @ mysq

Python快速学习第九天--安装并操作Mysql数据库

python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问Python数据库接口及API查看详细的支持数据库列表. 不同的数据库你需要下载

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

使用python操作mysql数据库

这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector-python 是MySQL官方的Python驱动 https://dev.mysql.com/doc/connector-python/en/ 安装: pip install mysql-connector 示例代码: https://github.com/mike-zhang/pyExample

【php】php操作MySQL数据库

一.操作步骤: 1. 连接MySQL数据库并判断是否连接成功2. 选择数据库3. 设置字符集4. 准备SQL语句5. 向MySQL服务发送SQL语句6. 解析处理结果集7. 释放结果集,关闭数据库连接 二.常用操作: 1. mysqli_connect();--连接数据库,并返回一个连接资源 格式: mysql_connect(主机名,用户,密码); --其中参数可选,若不写则参考php.ini中默认配置 2. mysqli_error(); --获取刚刚(最后)执行数据库操作的错误信息 3.

本地通过Eclipse链接Hadoop操作Mysql数据库问题小结

前一段时间,在上一篇博文中描述了自己抽时间在构建的完全分布式Hadoop环境过程中遇到的一些问题以及构建成功后,通过Eclipse操作HDFS的时候遇到的一些问题,最近又想进一步学习学习Hadoop操作Mysql数据库的一些知识,在这里网上存在很多分歧,很多人可能会笑话,用那么“笨重”的Hadoop来操作数据库,脑子有问题吧,Hadoop的HDFS优势在于处理分布式文件系统,这种说法没有任何错误,数据库的操作讲究“安全.轻便.快捷”,用Hadoop操作完全是不符合常理啊,那为啥还要学习这个东西呢