PHP Mysqli common code collection
Starting with PHP 5.0, you can not only use the early mysql database extension functions, but also use the newly expanded mysqli technology to communicate with the mysql database. PHP's mysqli extension is encapsulated in a class, which is an object-oriented technology. , can only be used in PHP5 and MYSQL4,1 or higher versions, (i) indicates that it should be entered, using mysqli, the execution speed is faster, more convenient, more efficient, and can also make database access safer (because the class mode is used )
Simple process using mysqli
Set PHP.ini configuration file
extension=php_mysqli.dll
//Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
//Detect connection
if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }
//Get the database return value
if($stmt=$con->prepare("SELECT username,password FROM member WHERE username=? AND password=?")) { $stmt->bind_param("ss",$username,$password); $stmt->execute(); $stmt->bind_result($U,$P); $HasData=false; while($stmt->fetch()) { $HasData=true; echo "username->".$U." password->".$P."<br>"; } }
//Close the connection
$conn->close();
//Common syntax
INSERT INTO [table name] ([field 1],[field 2]) VALUES ([value 1],[value 2]);
SELECT * FROM [table name] WHERE [expression] ORDER BY [field 1],[ASC/DESC rise/fall] [field 2],[ASC/DESC rise/fall];
DELETE FROM [table name] WHERE [expression];
UPDATE [table name] SET [field 1]=[value 1],[field 2]=[value 2] WHERE [expression];
Get the total number of rows: SELECT COUNT(*) FROM [table]
//Chinese garbled
//针对页面 header("Content-Type:text/html;charset=utf-8"); //针对数据库 mysqli->query("SET CHARACTER SET 'utf8'");//读库 mysqli->query("SET NAMES 'utf8'");//写库
Here are some examples
Connect to mysqli
Create MYSQL configuration file config.ini.php
The content of config.ini.php is as follows:
<?php $dbhost ="locallhost"; $dbuser = "hehehe"; $dbpwd = "123456"; $dbname = "Student"; $charName = "gbk2312"; 设置查询字符集gbk,gbk2312,utf-8 ?>
(Use mysqli to connect to the MYSQL database)
requery_once("config.ini.php"); $mysqliObj = new mysqli($dbhost,$dbuser,$dbpwd,$dbname); if(mysqli_connect_errno()){ echo "连接失败".mysqli_connect_error(); exit(); } $mysqliObj->query("set name $charName");
(Other operations)
Inquire
(单条查询) $sql = "drop table if exists user;"; $mysqliObj->query($sql); (多条查询) $musqliObj->multip_query($sql) 返回执行$sql受影响的行数() if($mysqliObj->query($sql)) echo $mysqliObj->affected_rows; insert 插入时,返回插入的id (很有用) $num = $mysqliObj->insert_id;
Three types of processing query results
$sql = "select * from user"; $result = $mysqli->query($sql); (1)fetch_row() 返回索引数组 fetch_row() while(list($id,$name,$pwd)=$result->fetch_row()){ echo "id: ".$id." name:".$name." pwd:".$pwd."<br>"; } (2)fetch_assoc() 返回关联数组 fetch_assoc() while ($row = $result->fetch_assoc()){ echo "id:".$row["userId"]." name:".$row["userName"]." pwd:".$row["password"]."<br>"; } (3)fetch_object()返回对象 while($row = $result->fetch_object()){ echo "id:".$row->userId." name:".$row->uerName." pwd:".$row->password."<br>"; }
Associative arrays are nested arrays, such as:
<?php $data = array( array('name' => 'John Smith', 'home' => '555-555-5555', 'cell' => '666-555-5555', 'email' => 'john@myexample.com'), array('name' => 'Jack Jones', 'home' => '777-555-5555', 'cell' => '888-555-5555', 'email' => 'jack@myexample.com'), array('name' => 'Jane Munson', 'home' => '000-555-5555', 'cell' => '123456', 'email' => 'jane@myexample.com') ); ?>
Use mysqli_stmt class
Mysql4.1 version began to provide a preprocessing (prepared statement) mechanism, which can see the entire command sent to the MYSQL server once. Only the parameters will change in the future. MYSQL only needs to analyze the command once, which greatly reduces the need for transmission. The amount of data also improves the processing efficiency of commands (note, close() should be closed immediately when the connection is not needed)
step:
1. Prepare SQL commands
$sql = "insert into user(name,pwd) values(?,?)";
$stms = $mysqli->prepare($sql);
2. Bind data
$stms->bind_param('ss',$name,$pwd); (Note 'ss': it must correspond to the following variables ($name,$pwd)
because
Dough or float type
s
b Binary (blob, binary byte string)
)
$name = "huang";
$pwd = "123456";
3.Execute
$stms->execute();
[4. Execute another set of data in the binding
$name = "he";
$pwd = "666666";
$stms->execute();
]
5.Close
$stmt->close();
$mysqli->close();
(Other useful parameters)
$num = $stmt->affected_rows; Number of rows affected
$id = $stmt->insert_id; When it is an insert command, return the inserted row id (automatic)
事务处理
在默认情况下,MYSQL是以自动提交(autocommit)模式运行,这就意味着所执行的每一个语句都将立即写入数据库中,但如果使用事务安全的表格类型,是不希望自动提交的行为的
事务处理
当执行多条MYSQL命令时,当然希望当其中一条命令出错时,所有的命令都不执行,返回执行命令之前的状态
这就用到事务了
简单运用事务流程
1.写好SQL命令
$sql1 = "insert user(name) values('huang','123456')";
$sql2 = "update account set number = number+1";
2.关闭MYSQL事务处理的自动提交模式
$mysqli->cutocommit(0);
3.试执行命令
$success = true;
$res1 = $mysqli->query($sql1);
if(!$res1 or $mysqli->affected_rows !=1){
$success = false;
}
$res2 = $mysqli->query($sql2);
if(!$res2 or $mysqli->affected_rows !=1){
$success = false;
}
4.查看执行情况,都成功执行,有失败回滚初态
if($success ){
$mysqli->commit();
echo "执行成功";
}else{
$mysqli->rollback();
echo "执行失败";
}
5.恢复MYSQL事务处理的自动提交模式
$mysqli->cutocommit(1);
$mysqli->close();
mysql 目前只有InnDB和BDB两种数据包类型才支持事务
InnoDB最快
(创建InnDB类型表)
create table user( id int(10) not null auto_increment, name varchar(50) not null, pwd varchar(50) not null, primary key(id) )type=InnoDB

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
