1、mysql與mysqli的概念相關:php
一、mysql與mysqli都是php方面的函數集,與mysql數據庫關聯不大。mysql
二、在php5版本以前,通常是用php的mysql函數去驅動mysql數據庫的,好比mysql_query()的函數,屬於面向過程三、在php5版本之後,增長了mysqli的函數功能,某種意義上講,它是mysql系統函數的加強版,更穩定更高效更安全,與mysql_query()對應的有mysqli_query(),屬於面向對象,用對象的方式操做驅動mysql數據庫linux
2、mysql與mysqli的區別:sql
一、mysql是非持繼鏈接函數,mysql每次連接都會打開一個鏈接的進程。數據庫
二、mysqli是永遠鏈接函數,mysqli屢次運行mysqli將使用同一鏈接進程,從而減小了服務器的開銷。mysqli封裝了諸如事務等一些高級操做,同時封裝了DB操做過程當中的不少可用的方法。json
3、mysqli的用法:安全
ConnectionMySQL.php
服務器
<?php
// 設置返回json格式數據
header('content-type:application/json;charset=utf8');
$mysql_server_name = "localhost"; //數據庫服務器名稱
$mysql_username = "root"; // 鏈接數據庫用戶名
$mysql_password = "xxxx"; // 鏈接數據庫密碼
$mysql_database = "stalker"; // 數據庫的名字
$mysql_port = "3306"; //端口號
$conn; //數據庫鏈接標識;
$result; //執行query命令的結果資源標識
//Open a new connection to the MySQL server
$conn = new mysqli($mysql_server_name, $mysql_username, $mysql_password, $mysql_database, $mysql_port);
//Output any connection error
if($conn->connect_error) {
die('Error:('.$conn->connect_errno .') '.$conn->connect_error);
}
SqlStatement
app
<?php
$sql; //sql執行語句
$row; //返回的條目數
//要執行的SQL語句
$sql="SELECT * FROM `personinfo`";
$results = array();
$i = 0;
//調用ConnectionMySQL.php文件進行數據庫鏈接操做
require('ConnectionMySQL.php');
foreach($conn->query($sql) as $row) {
$results[$i] = $row;
$i++;
}
// 將結果轉成json格式
echo json_encode(array('jsonObj'=>$results));
// 關閉鏈接
$conn->close();
結果:函數
{"jsonObj":[{"id":"001","name":"\u5f20\u5a01","type":"Android"},{"id":"002","name":"\u5f20\u745e\u5cf0","type":"Android"},{"id":"003","name":"\u5f20\u671d","type":"Android"},{"id":"004","name":"\u5f20\u9a8b","type":"Android"}]}
通常是mysqli是沒有開啓的,由於mysqli類不是默認開啓的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli編譯進去。
4、mysql_connect()與mysqli_connect()
1.使用mysqli,能夠把數據庫名稱看成參數傳給mysqli_connect()函數,也能夠傳遞給mysqli的構造函數;
2.若是調用mysqli_query()或mysqli的對象查詢query()方法,則鏈接標識是必需的。