Home >Backend Development >PHP Tutorial >In fact, there is no desire today..-MySQLi, desire..-MySQLi_PHP Tutorial
hi
I had a refreshing swim at noon, but after finishing reading One Punch Man in the afternoon, I no longer had the desire to learn. . . Force yourself to update something and read a book later.
1. MySQLi
2. MySQLi OOP-based programming
2.1 Using parsing
--Basic
MySQLi is an extended class library, essentially a class (?).
The general process is the same as MySQL: connection, library selection, character set setting, SQL statement execution, closing connection .
--Link library example
/*
* Connect and select database
*/
$mysqli=new mysqli('localhost', 'root' , '');
print_r($mysqli);echo "
";
echo $mysqli->select_db('test');echo "
";
$mysqli2=new mysqli();
print_r($mysqli2->connect('localhost', 'root', ''));echo "
";
print_r($mysqli3=new mysqli('localhost', 'root', '','test'));echo "
";
Three different methods, the methods here are all done using the class attributes of mysqli; of course, you can also use mysqli commands to link;
$con=mysqli_connect(HOST,USERNAME,PASSWORD)
There is some information in the results
mysqli Object | |
( | |
[affected_rows] => 0 | |
[client_info] => mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $ | |
[client_version] => 50011 | |
[connect_errno] => 0 | |
[connect_error] => | |
[errno] => 0 | |
[error] => | |
[error_list] => Array | |
( | |
) | |
[field_count] => 0 | |
[host_info] => localhost via TCP/IP | |
[info] => | |
[insert_id] => 0 | |
[server_info] => 5.6.17 | |
[server_version] => 50617 | |
[stat] => Uptime: 968 Threads: 1 Questions: 24 Slow queries: 0 Opens: 70 Flush tables: 1 Open tables: 63 Queries per second avg: 0.024 | |
[sqlstate] => 00000 | |
[protocol_version] => 10 | |
[thread_id] => 11 | |
[warning_count] => 0 | |
) |
These attributes can be obtained through the attributes of the object, such as
echo $mysqli->client_info;echo "
";
Or it can be obtained through corresponding methods. You can see these things in the manual.
header('content-type:text/html;charset=utf-8');
//1. Establish a connection to MySQL data
// $mysqli= new mysqli('localhost','root','root');
// //print_r($mysqli);
// //2. Open the specified database
// $mysqli- >select_db('test');
// $mysqli=new mysqli();
// $mysqli->connect('127.0.0.1','root','root');
// print_r($mysqli);
//Open the specified database while establishing a connection
$mysqli=@new mysqli('localhost','root','root','test');
//print_r($mysqli);
//$mysqli->connect_errno: Get the error number generated by the connection
//$mysqli->connect_error: Get the error message generated by the connection
if($mysqli->connect_errno){
die('Connect Error:'.$mysqli->connect_error);
}
print_r($mysqli);
echo '
echo '
--Character set example
//1. Establish a connection to MySQL
$mysqli=@new mysqli('localhost','root','root','test');
if ($mysqli->connect_errno){
die('Connect Error:'.$mysqli->connect_error);
}
//2. Set the default client encoding utf8
$mysqli->set_charset('utf8');
///3. Execute SQL query
$sql=<<
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL
);
EOF;
$res=$mysqli->query($sql);
var_dump($res);
/*
SELECT/DESC/DESCRIBE/SHOW/EXPLAIN returns the mysqli_result object if the execution is successful, and false if the execution fails
For the execution of other SQL statements, true is returned if the execution is successful, otherwise false
*/
//Close the connection
$mysqli->close();
It should be noted that the database is utf8, not utf-8;
2.2 Insert record operation
Increase.
--connect.php
Because a series of operations to connect to the database are commonly used, for this, our simple method is to encapsulate it and call
everywhererequire_once 'connect.php';
connect.php
/*
* Connection and library selection (header) files
*/
$mysqli=new mysqli('localhost', 'root ', '','test');
if($mysqli->connect_errno){
die('Connect Error:'.$mysqli->connect_error);
}else{
echo 'Client information:'.$mysqli->client_info.'
';
}
$mysqli->set_charset('utf8');
--Added
/*
* Insert data into database
*/
require_once 'connect.php';
$sql="insert mysqli(username) value('Tom')";
echo $mysqli->query($sql);
What is executed here is a single sql statement.
Or improve it a little, add a judgment, and output error information.
if($res){
echo $mysqli->insert_id;
}else{
echo 'ERROR '.$mysqli->error;
}
Or, insert multiple records
$sql="insert mysqli(username) value('Sdaf'),('Andy')";
2.3 Update Record
Updated.
$sql="update test set id=id 10";
$mysqli->query($sql);
2.4 Delete
Delete
$sql="delete from mysqli where id>=2";
--
Special note, there are three situations returned by affected_rows:
-1 There is a problem with the sql statement;
0 No affected statements;
>=0 Number of affected items.
--Summary
header('content-type:text/html;charset=utf-8');
$mysqli=new mysqli('localhost','root','root', 'test');
if($mysqli->connect_errno){
die('CONNECT ERROR:'.$mysqli->connect_error);
}
$mysqli->set_charset ('utf8');
//Execute SQL query
//Add record
//Execute a single SQL statement, only one SQL statement can be executed
// $sql="INSERT user(username,password) VALUES(' king','king');";
// $sql.="DROP TABLE user;";
$sql="INSERT user(username,password) VALUES('queen1','queen1') ,('queen2','queen2'),('queen3','queen3'),('queen4','queen4')";
$res=$mysqli->query($sql);
if($res){
//Get the value of AUTO_INCREMENT generated by the previous insert operation
echo 'Congratulations on your successful registration, you are the '.$mysqli->insert_id.' user on the website< ;br/>';
//Get the number of affected records generated by the previous operation
echo 'There are'.$mysqli->affected_rows.' records affected';
}else{
//Get the error number and error message generated by the previous operation
echo 'ERROR '.$mysqli->errno.':'.$mysqli->error;
}
echo '
//Add age 10 in the table
$sql="UPDATE user SET age=age 10";
$res=$mysqli->query($sql);
if($res ){
echo $mysqli->affected_rows.'records updated';
}else{
echo "ERROR ".$mysqli->errno.':'.$mysqli-> error;
}
echo '
//Delete the user with id<=6 in the table
$sql="DELETE FROM user WHERE id<=6";
$res=$mysqli->query($sql);
if($res){
echo $mysqli->affected_rows.'Record deleted';
}else{
echo "ERROR ".$mysqli->errno.': '.$mysqli->error;
}
//Close the connection to MySQL
$mysqli->close();
2.5 Check
It should be noted that select is used, so the result set is returned, which is print_r or var_dump that can be printed out.
So here we will talk about the selection of the returned result set.
header('content-type:text/html;charset=utf-8');
$mysqli=new mysqli('localhost','root','root', 'test');
if($mysqli->connect_errno){
die('CONNECT ERROR:'.$mysqli->connect_error);
}
$mysqli->set_charset ('utf8');
$sql="SELECT id,username,age FROM user";
$mysqli_result=$mysqli->query($sql);
/ /var_dump($mysqli_result);
if($mysqli_result && $mysqli_result->num_rows>0){
//echo $mysqli_result->num_rows;
//$rows=$ mysqli_result->fetch_all();//Get all records in the result set, the default return is two-dimensional
//Form of index index
//$rows=$mysqli_result->fetch_all( MYSQLI_NUM);
//$rows=$mysqli_result->fetch_all(MYSQLI_ASSOC);
//$rows=$mysqli_result->fetch_all(MYSQLI_BOTH);
// $row= $mysqli_result->fetch_row();//Get a record in the result set and return it as an index array
// print_r($row);
// echo '
while($row=$mysqli_result->fetch_assoc()){
//print_r($row);
//echo '