精华内容
下载资源
问答
  • Mysqli

    2020-04-30 14:22:07
    Mysqli 一、什么是Mysqli 1.Mysqli扩展运行用户访问由Mysql4.1版本或更高版本所提供的功能,编译PHP时候如果需要使用必须加入mysqli扩展支持,mysqli扩展库设计用于同MySQL4.1.3或更高版本协同工作。 2.代表PHP和...

    Mysqli
    一、什么是Mysqli
    1.Mysqli扩展运行用户访问由Mysql4.1版本或更高版本所提供的功能,编译PHP时候如果需要使用必须加入mysqli扩展支持,mysqli扩展库设计用于同MySQL4.1.3或更高版本协同工作。
    2.代表PHP和Mysql数据库之间的一个连接。

    二、Mysql 和 Mysql拓展、Mysqli拓展的区别
    1.MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一
    2.MySQL是一个在后台持续运行并管理数据存储的程序。 它通过套接字连接提供与外部世界的接口,它接受SQL查询,提示它存储新数据或返回现有数据。 要连接到此套接字并通过它发送SQL查询,需要说出MySQL期望的特定协议; 这只是通过该套接字与MySQL连接的技术细节。
    3.mysqli是可以完成该协议的PHP库之一,因此为PHP代码提供了一种在SQL查询中与MySQL通信的方法,从而抽象出套接字协议的细节。
    4.mysql扩展(现在已经过时并且已弃用)从 PHP 5.5.0 起这个扩展已经被废弃,并且从 PHP 7.0.0. 开始被移除。作为替代,可以使用 mysqli 或者 PDO_MySQL 扩展代替
    5.mysql与mysqli都是php方面的函数集,与mysql数据库关联不大
    6.在php5版本之前,一般是用php的mysql函数去驱动mysql数据库的,比如mysql_query()的函数,属于面向过程
    7.在php5版本以后,增加了mysqli的函数功能,某种意义上讲,它是mysql系统函数的增强版,更稳定更高效更安全,与mysql_query()对应的有mysqli_query(),属于面向对象,用对象的方式操作驱动mysql数据库。
    8.mysqli 连接是永久连接,而mysql是非永久连接。什么意思呢? mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以很大程度的减轻服务器端压力。
    9.mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。应用比较多的地方是 mysqli的事务

    三、MySQLI——安装
    1.PHP5.0 5.1 5.2 mysqli扩展默认并不会开启,因此php.ini中php_mysqli.dll这个DLL 必须开启。为此你需要找到php.ini文件,并且你需要确认删除了 [PHP_MYSQLI]部分中的extension=php_mysqli.dll一行行首的注释符号(分号)。
    2.在windows上,对于PHP 5.3或更新版本,mysqli扩展默认开启并使用Mysql Native Driver。 这就是说你不需要担心关于访问libmysql.dll的配置。

    四、mysqli对象、mysqli_result对象、mysqli_stmt对象之间的关系图
    在这里插入图片描述

    五、MySQLi扩展的功能概述及方法
    文档详见:https://www.php.net/manual/zh/mysqli.summary.php

    展开全文
  • MySQLI

    2019-05-17 08:12:52
    $mysqli->client_info; 客户端信息 $mysqli->version; 客户端版本 $mysqli->info; 服务器端信息 $mysqli->server_version; 服务器端版本 $mysqli->get_client_info(); 获得...

    $mysqli->client_info; 客户端信息
    $mysqli->version; 客户端版本
    $mysqli->info; 服务器端信息
    $mysqli->server_version; 服务器端版本
    $mysqli->get_client_info(); 获得客户端信息的函数
    $mysqli->get_server_info(); 获得服务器端信息的函数
    $mysqli->connect_erron 链接产生的错误号
    $mysqli->conncet_error 链接产生的错误信息
    $mysqli->set_charset(‘utf8’); 设置字符集
    fetch_assoc() 获得结果集的所有记录,默认是以关联+索引

    展开全文
  • mysqli

    2018-11-07 15:05:10
    mysqli 连接是永久连接,而mysql是非永久连接。什么意思呢? mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以很大程度的减轻服务器端压力   mysqli封装了诸如...

    mysqli 连接是永久连接,而mysql是非永久连接。什么意思呢? mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以很大程度的减轻服务器端压力

     

    mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。

    应用比较多的地方是 mysqli的事务

     

    <?php
    
    $mysqli = new mysqli('127.0.0.1','root','','ssdb');
    
    if($mysqli->connect_errno){
    	echo "Failed to connnect to MySql:" . $mysqli->connect_error;
    }
    
    $mysqli->query("set names utf8");
    
    //默认事务提交auto-commit 是打开的,可直接提交sql语句  
    
    $s1 = $mysqli->query("INSERT INTO art_classification (type_id,article_type) values (null,'互联网')");

    事务操作

    <?php
    $mysqli=new mysqli("localhost","root","123456","test003");
    if($mysqli->connect_error){
        die ("LINK FAILED".$mysqli->connect_error);
    }
    $mysqli->query("set names utf8");
    //关闭自动提交;
    $mysqli->autocommit(false);
    $sql01="update account set balance=balance+4 where id=1;";
    $sql02="update account set balance=balance-4 where id=2;";
    $b1=$mysqli->query($sql01) or die($mysqli->error);
    $b2=$mysqli->query($sql02) or die($mysqli->error);
    if(!$b1||!$b2){
        echo "Failed".$mysqli->error;
        //回滚;
        $mysqli->rollback();
    
    }
    else {
        echo "success";
        //提交;
        $mysqli->commit();
    }
    $mysqli->close();

    二、查询结果集

    <?php
    require '../data/conn.php';
    	$sql = 'SELECT * FROM zy_category';
    	$resulet = $mysqli->query($sql);
    	var_dump($resulet);
    	echo "<br>=====<br>";
    	// $row = $resulet->fetch_all();
    	$out = [];
    	while (true) {
    		$row = $resulet->fetch_assoc();
    		if ($row == null) break;
    		$out[] = $row;
    	}
    
    	var_dump($out);
    
    ?>

    结果

    object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(2) ["lengths"]=> NULL ["num_rows"]=> int(5) ["type"]=> int(0) } 
    ==========================================
    array(5) { [0]=> array(2) { ["c_id"]=> string(1) "1" ["article_type"]=> string(2) "it" } [1]=> array(2) { ["c_id"]=> string(1) "2" ["article_type"]=> string(9) "互联网" } [2]=> array(2) { ["c_id"]=> string(1) "3" ["article_type"]=> string(2) "H5" } [3]=> array(2) { ["c_id"]=> string(1) "4" ["article_type"]=> string(3) "CSS" } [4]=> array(2) { ["c_id"]=> string(1) "5" ["article_type"]=> string(6) "创业" } }

    参考php手册 :http://php.net/manual/zh/mysqli-result.fetch-assoc.php

     

    展开全文
  • MYSQLI - mysqli

    2016-04-03 18:16:00
    PHP MysqlI操作数据库 ...//proceduralstyle$mysqli=mysqli_connect('host','username','password','database_name');//objectorientedstyle(recommended)$mysqli=newmysqli('host','username','passwor...

    PHP MysqlI操作数据库

    1连接数据库.
    //procedural style
    $mysqli =  mysqli_connect('host','username','password','database_name');

    //object oriented style (recommended)
    $mysqli = new mysqli('host','username','password','database_name');


    推荐下面的方式

    <?php
    //Open a new connection to the MySQL server
    $mysqli = new mysqli('host','username','password','database_name');

    //Output any connection error
    if ($mysqli->connect_error) {
        die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
    }

    ?>


    2.选择多行
    mysqli_fetch_assoc() : Below is the code to fetch multiple records as an associative array. The returned array holds the strings fetched from database, where the column names will be the key used to access the internal data. As you can see below, data is displayed in an HTML table.
    <?php
    //Open a new connection to the MySQL server
    $mysqli = new mysqli('host','username','password','database_name');

    //Output any connection error
    if ($mysqli->connect_error) {
        die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
    }

    //MySqli Select Query
    $results = $mysqli->query("SELECT id, product_code, product_desc, price FROM products");

    print '<table border="1">';
    while($row = $results->fetch_assoc()) {
        print '<tr>';
        print '<td>'.$row["id"].'</td>';
        print '<td>'.$row["product_code"].'</td>';
        print '<td>'.$row["product_name"].'</td>';
        print '<td>'.$row["product_desc"].'</td>';
        print '<td>'.$row["price"].'</td>';
        print '</tr>';
    }  
    print '</table>';

    // Frees the memory associated with a result
    $results->free();

    // close connection 
    $mysqli->close();
    ?>
    3.选择
    fetch_array() : Function returns an array of both mysqli_fetch_row and mysqli_fetch assoc merged together, it is an extended version of the mysqli_fetch_row() function and both numeric and string can be used as keys to access the data.
    <?php
    //Open a new connection to the MySQL server
    $mysqli = new mysqli('host','username','password','database_name');

    //Output any connection error
    if ($mysqli->connect_error) {
        die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
    }

    //MySqli Select Query
    $results = $mysqli->query("SELECT id, product_code, product_desc, price FROM products");

    print '<table border="1"';
    while($row = $results->fetch_array()) {
        print '<tr>';
        print '<td>'.$row["id"].'</td>';
        print '<td>'.$row["product_code"].'</td>';
        print '<td>'.$row["product_name"].'</td>';
        print '<td>'.$row["product_desc"].'</td>';
        print '<td>'.$row["price"].'</td>';
        print '</tr>';

    }   
    print '</table>';

    // Frees the memory associated with a result
    $results->free();
    // close connection 
    $mysqli->close();
    ?>
    4.选择
    fetch_object() : To fetch database result set as an objects, just use MySqli fetch_object(). The attributes of the object represent the names of the fields found within the result set.
    <?php
    //Open a new connection to the MySQL server
    $mysqli = new mysqli('host','username','password','database_name');

    //Output any connection error
    if ($mysqli->connect_error) {
        die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
    }

    //MySqli Select Query
    $results = $mysqli->query("SELECT id, product_code, product_desc, price FROM products");

    print '<table border="1">';
    while($row = $results->fetch_object()) {
        print '<tr>';
        print '<td>'.$row->id.'</td>';
        print '<td>'.$row->product_code.'</td>';
        print '<td>'.$row->product_name.'</td>';
        print '<td>'.$row->product_desc.'</td>';
        print '<td>'.$row->price.'</td>';
        print '</tr>';
    }  

    print '</table>';

    // close connection 
    $mysqli->close();
    ?>
    5.选择单行
    <?php
    //Open a new connection to the MySQL server
    $mysqli = new mysqli('host','username','password','database_name');

    //Output any connection error
    if ($mysqli->connect_error) {
        die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
    }

    //chained PHP functions
    $product_name = $mysqli->query("SELECT product_name FROM products WHERE id = 1")->fetch_object()->product_name; 
    print $product_name; //output value

    $mysqli->close();
    ?>
    6.选择行数
     <?php
    //Open a new connection to the MySQL server
    $mysqli = new mysqli('host','username','password','database_name');

    //Output any connection error
    if ($mysqli->connect_error) {
        die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
    }

    //get total number of records
    $results = $mysqli->query("SELECT COUNT(*) FROM users");
    $get_total_rows = $results->fetch_row(); //hold total records in variable

    $mysqli->close();
    ?>
    7.选择预处理
    $search_product = "PD1001"; //product id

    //create a prepared statement
    $query = "SELECT id, product_code, product_desc, price FROM products WHERE product_code=?";
    $statement = $mysqli->prepare($query);

    //bind parameters for markers, where (s = string, i = integer, d = double,  b = blob)
    $statement->bind_param('s', $search_product);

    //execute query
    $statement->execute();

    //bind result variables
    $statement->bind_result($id, $product_code, $product_desc, $price);

    print '<table border="1">';

    //fetch records
    while($statement->fetch()) {
        print '<tr>';
        print '<td>'.$id.'</td>';
        print '<td>'.$product_code.'</td>';
        print '<td>'.$product_desc.'</td>';
        print '<td>'.$price.'</td>';
        print '</tr>';

    }   
    print '</table>';

    //close connection
    $statement->close();
    $search_ID = 1; 
    $search_product = "PD1001"; 

    $query = "SELECT id, product_code, product_desc, price FROM products WHERE ID=? AND product_code=?";
    $statement = $mysqli->prepare($query);
    $statement->bind_param('is', $search_ID, $search_product);
    $statement->execute();
    $statement->bind_result($id, $product_code, $product_desc, $price);

    print '<table border="1">';
    while($statement->fetch()) {
        print '<tr>';
        print '<td>'.$id.'</td>';
        print '<td>'.$product_code.'</td>';
        print '<td>'.$product_desc.'</td>';
        print '<td>'.$price.'</td>';
        print '</tr>';

    }   
    print '</table>';

    //close connection
    $statement->close();
    8.插入数据库
    <?php
    //values to be inserted in database table
    $product_code = '"'.$mysqli->real_escape_string('P1234').'"';
    $product_name = '"'.$mysqli->real_escape_string('42 inch TV').'"';
    $product_price = '"'.$mysqli->real_escape_string('600').'"';

    //MySqli Insert Query
    $insert_row = $mysqli->query("INSERT INTO products (product_code, product_name, price) VALUES($product_code, $product_name, $product_price)");

    32432432 if($insert_row){
        print 'Success! ID of last inserted record is : ' .$mysqli->insert_id .'<br />'; 
    }else{
        die('Error : ('. $mysqli->errno .') '. $mysqli->error);
    }

    ?>
    9.插入预处理
    //values to be inserted in database table
    $product_code = 'P1234';
    $product_name = '42 inch TV';
    $product_price = '600';

    $query = "INSERT INTO products (product_code, product_name, price) VALUES(?, ?, ?)";
    $statement = $mysqli->prepare($query);

    //bind parameters for markers, where (s = string, i = integer, d = double,  b = blob)
    $statement->bind_param('sss', $product_code, $product_name, $product_price);

    if($statement->execute()){
        print 'Success! ID of last inserted record is : ' .$statement->insert_id .'<br />'; 
    }else{
        die('Error : ('. $mysqli->errno .') '. $mysqli->error);
    }
    $statement->close();
    10.批量插入
    //product 1
    $product_code1 = '"'.$mysqli->real_escape_string('P1').'"';
    $product_name1 = '"'.$mysqli->real_escape_string('Google Nexus').'"';
    $product_price1 = '"'.$mysqli->real_escape_string('149').'"';

    //product 2
    $product_code2 = '"'.$mysqli->real_escape_string('P2').'"';
    $product_name2 = '"'.$mysqli->real_escape_string('Apple iPad 2').'"';
    $product_price2 = '"'.$mysqli->real_escape_string('217').'"';

    //product 3
    $product_code3 = '"'.$mysqli->real_escape_string('P3').'"';
    $product_name3 = '"'.$mysqli->real_escape_string('Samsung Galaxy Note').'"';
    $product_price3 = '"'.$mysqli->real_escape_string('259').'"';

    //Insert multiple rows
    $insert = $mysqli->query("INSERT INTO products(product_code, product_name, price) VALUES
    ($product_code1, $product_name1, $product_price1),
    ($product_code2, $product_name2, $product_price2),
    ($product_code3, $product_name3, $product_price3)");

    if($insert){
        //return total inserted records using mysqli_affected_rows
        print 'Success! Total ' .$mysqli->affected_rows .' rows added.<br />'; 
    }else{
        die('Error : ('. $mysqli->errno .') '. $mysqli->error);
    }
    11.更新删除
    //MySqli Update Query
    $results = $mysqli->query("UPDATE products SET product_name='52 inch TV', product_code='323343' WHERE ID=24");

    //MySqli Delete Query
    //$results = $mysqli->query("DELETE FROM products WHERE ID=24");

    if($results){
        print 'Success! record updated / deleted'; 
    }else{
        print 'Error : ('. $mysqli->errno .') '. $mysqli->error;

    12.预处理
    $product_name = '52 inch TV';
    $product_code = '9879798';
    $find_id = 24;

    $query = "UPDATE products SET product_name=?, product_code=? WHERE ID=?";
    $statement = $mysqli->prepare($query);

    //bind parameters for markers, where (s = string, i = integer, d = double,  b = blob)
    $results =  $statement->bind_param('ssi', $product_name, $product_code, $find_id);

    if($results){
        print 'Success! record updated'; 
    }else{
        print 'Error : ('. $mysqli->errno .') '. $mysqli->error;
    }
    13.删除

    //MySqli Delete Query
    $results = $mysqli->query("DELETE FROM products WHERE added_timestamp < (NOW() - INTERVAL 1 DAY)");

    if($results){
        print 'Success! deleted one day old records'; 
    }else{
        print 'Error : ('. $mysqli->errno .') '. $mysqli->error;
    }

    转载于:https://www.cnblogs.com/KTblog/p/5350276.html

    展开全文
  • MYSQLI_USE_RESULT : MYSQLI_STORE_RESULT)); 在php manul上面对这两个参数是这样解释的。 复制代码 代码如下: Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior...
  • MySQLi实战教程

    万人学习 2017-08-23 10:53:48
    由King老师精心打造的MySQLi实战课程,本课程从面向对象和面向过程两个方面,讲解了MySQLi的具体使用和注意事项,后通过无刷新评论系统的实战演练,详细剖析实际开发中如何使用MySQLi完成对数据库的操作!...
  • 1. 功能增加了2,效率大大增加(以后的PHP项目改成mysqli)3,更稳定mysqli使用面向对象技术,但也支持过程化的使用方式mysqli扩展中给我提供了三个类:1. mysqli和连接有关的类2. mysqli_result表达了对数据库的查询...
  • 定义和用法mysqli_num_rows- 获取结果中的...mysqli_num_rows的行为取决于是否使用缓冲的或未缓冲的结果集。 对于无缓冲的结果集,在检索到结果中的所有行之前,mysqli_num_rows不会返回正确的行数。参数返回值返...
  • 语法:mysqli_kill ( mysqli $link , int $processid ) 本函数可以用来让服务器杀掉 processid 参数指定的 线程 ID。数据库连接对应的线程 ID 可以通过 调用mysqli_thread_id()函数得到。 如果仅仅想中止...
  • 该楼层疑似违规已被系统折叠隐藏此楼...mysqli_autocommit()打开或关闭自动提交数据库修改功能。mysqli_change_user()更改指定数据库连接的用户。mysqli_character_set_name()返回数据库连接的默认字符集。mysqli_c...
  • mysqli 查询

    2019-09-27 10:39:29
    $mysqli = new mysqli('localhost', 'user', 'pwd', 'dbname'); $query = "select goods_id,goods_name from sw_goods where goods_name=? "; $stmt = $mysqli->stmt_init(); //不直接用mysqli->query 是为....
  • php操作数据库首先必须连接到指定的数据库,之前我们用的mysql_connect函数,现在有的PHP版本已经不支持了,目前小编是使用mysqli_connect函数链接数据库,用法跟mysql基本相似。本文章向大家介绍mysqli_connect函数...
  • 偶然发现mysqli::query(或者mysqli_query)有一个参数$resultmode取值为MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT。平时封装好的类中都是使用默认的MYSQLI_STORE_RESULT。Phpmanul上给出了这么一段话:Either th...
  • MySQLi 函数允许您访问 MySQL 数据库服务器。注释:MySQLi 扩展被设计用于 MySQL 4.1.13 版本或更新的版本。安装 / Runtime 配置为了能够顺利使用 MySQLi 函数,您必须在编译 PHP 时添加对 MySQLi 扩展的支持。...
  • mysqli简介

    2018-03-12 10:20:00
    mysqli简介 PHP MySQLi 简介 PHP MySQLi = PHP MySQL Improved! MySQLi 函数允许您访问 MySQL 数据库服务器。 注释:MySQLi 扩展被设计用于 MySQL 4.1.13 版本或更新的版本。 mysqli 扩展允许用户访问由 ...
  • mysqli扩展

    2018-11-19 21:26:21
    // 使用mysqli扩展对mysql进行crud操作 //1.建表 //2.在php.ini文件中,打开php_mysqli.dll扩展库 //打开extension=php_mysqli.dll //3.具体操作 //1.创建一个mysqli对象 //@功能:得到一个链接到mysq...
  • mysqli 预处理

    2019-05-31 20:32:25
    MySQLi函数库用于操作MySQL数据库。 PHP操作MySQL数据库管理系统 MySQL MySQLi PDO 二、安装 1、确认是否安装扩展 <?php phpinfo(); 2、编辑php.ini extension_dir 指明php文件的扩展文件目录。 extension_dir =...
  • Mysqli笔记

    2018-01-24 20:48:55
    MySQLi类,基本操作 MySQL_STMT类,预处理操作 MySQLi_RESULT类,结果操作 Mysqli的编写有两种方式,一种是面向对象风格,一种是过程化风格(面向过程) 连接数据库 方法1:new mysqli(host," role=...
  • mysql与mysqli的区别:mysqli连接是永久连接,而mysql是非永久连接。mysql连接:每当第二次使用的时候,都会重新打开一个新的进程。mysqli连接:一直都只使用同一个进程。好处:这样就可以很大程度的减轻服务器端...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,098
精华内容 10,839
关键字:

mysqli

mysql 订阅