使用MySqli對象操作數據庫

一、連接數據庫
1、連接語句

//創建mysqli對象(資源句柄)
$_mysqli = new mysqli();
//連接數據庫 1、主機名 2、賬戶 3、密碼 4、數據庫
$_mysqli->connect('localhost','root','','');
//斷開MySQL 
$_mysqli->close();

2、不用connect,直接使用構造方法連接數據庫

$_mysqli = new mysqli('localhost','root','','');
//也可以單獨選擇一個數據庫
//這裏選擇的數據庫 會替代上面數據庫,一般不用這種方式
$_mysqli->select_db('liuyan');
$_mysqli->close(); 

3、錯誤處理(連接錯誤)

$_mysqli = new mysqli('localhost','root','','');
     echo mysqli_connect_errno();//錯誤代號
     echo mysqli_connect_error();//錯誤信息
     //0表示沒有任何錯誤
if(mysqli_connect_errno())
{
     echo "錯誤信息:".mysqli_connect_error();
     exit();
 }

4、錯誤處理(操作錯誤)

$_mysqli = new mysqli('localhost','root','','');
if(mysqli_connect_errno()){
     echo "錯誤信息:".mysqli_connect_error();
     exit();
}
$_mysqli->select_db('liuyan');
//數據庫操作時發生的錯誤
     //echo $_mysqli->errno;
     //echo $_mysqli->error;

     if($_mysqli->errno){
        echo '數據庫操作錯誤'.$_mysqli->error;
     }

二、與數據庫進行交互
1、連接數據庫

$_mysqli = new mysqli('localhost','root','','met_aa');
 if(mysqli_connect_errno()){
        echo "錯誤信息:".mysqli_connect_error();
        exit();
}
//創建一句SQL,獲取數據庫表的數據
$_sql = "SELECT * FROM met_app";
//執行SQL語句把結果賦給$_result(資源句柄);
$_result = $_mysqli->query($_sql);
//通過結果集,取得第一行數據
print_r($_result->fetch_row());
//運行一次,指針下移一條
print_r($_result->fetch_row());
//銷燬結果集
$_result->free();
//$_mysqli->close();


 //設置編碼
$_mysqli ->set_charset('utf8');
 //創建一個SQL語句獲得數據庫表數據
$_sql = "SELECT * FROM met_app";
//創建一個結果集
$_result = $_mysqli->query($_sql);

2、使用索引數組取值

 print_r($_result->fetch_row());
 $_row = $_result->fetch_row();
echo $_row[5];
//遍歷 (下標難記)
while(!!$_row =  $_result->fetch_row())
 {
    echo $_row[3]."<br>";
 }

3、使用關聯數組取值

print_r($_result->fetch_assoc());
$_assoc = $_result->fetch_assoc();
 echo $_assoc['id'];
 //遍歷 
while(!!$_assoc = $_result->fetch_assoc()){
    echo $_assoc['id']."<br>";
}

4、 索引+關聯

print_r($_result->fetch_array() );
$_array =$_result ->fetch_array();
echo $_array[3];
echo $_array['id'];
//遍歷...

5、使用OOP的方式

print_r($_result->fetch_object());
$_object = $_result->fetch_object();
echo $_object->id;
echo $_result->fetch_object()->id;
//OOP遍歷
while (!!$_object = $_result->fetch_object()){
     echo $_object->id;
 }

三、確定所選擇的行和受影響的行
1、

$_mysqli = new mysqli('localhost','root','','met_aa');
    if(mysqli_connect_errno()){
        echo "錯誤信息:".mysqli_connect_error();
        exit();
    }
$_mysqli -> set_charset('utf8');
//$_sql = 'SELECT * FROM met_app';
$_sql = 'SELECT * FROM met_app limit 0,6';
$_result = $_mysqli->query($_sql);
//想了解查詢了多少行
echo $_result ->num_rows;
//找影響了多少行
echo $_mysqli->affected_rows;
$_mysqli->close();

2、

$_mysqli = new mysqli('localhost','root','','met_aa');
     if(mysqli_connect_errno()){
        echo "錯誤信息:".mysqli_connect_error();
        exit();
      }
    $_mysqli -> set_charset('utf8');
    $_sql = 'SELECT * FROM met_app';
    $_result = $_mysqli->query($_sql);

    echo $_result ->field_count;
    //獲取字段名
    $_field = $_result->fetch_field();
    echo $_field->name;
    $field = $_result->fetch_field();
    echo $_field->name;

    while (!!$_field = $_result ->fetch_field())       {
        echo $_field->name."<br>";
}
    //一次性取得所有字段
    $_field = $_result->fetch_fields();
    echo $_field[0]->name;
    $_fields = $_result->fetch_fields();
    foreach ($_fields as $_field) {
        echo $_field->name.'<br>';
    }

3、

$_mysqli = new mysqli('localhost','root','','met_aa');
     if(mysqli_connect_errno()){
        echo "錯誤信息:".mysqli_connect_error();
        exit();
      }
    $_mysqli -> set_charset('utf8');
    $_sql = 'SELECT * FROM met_app';
    $_result = $_mysqli->query($_sql);
    //移動數指針
    $_result ->data_seek(9);
    $_row = $_result->fetch_row();
    echo $_row[3];
    //移動字段指針
    $_field=$_result->fetch_field();
    echo $_field->name;
    $_mysqli->close();

四、執行多條SQL語句
1、

$_mysqli = new mysqli('localhost','root','','met_aa');
     if(mysqli_connect_errno()){
        echo "錯誤信息:".mysqli_connect_error();
        exit();
      }
    $_mysqli -> set_charset('utf8');

    //創建三個修改的SQL語句
    $_sql .= 'UPDATE a SET b ='0' WHERE c='1';'; 
    $_sql .= 'UPDATE a SET b ='0' WHERE c='1';'; 
    $_sql .= 'UPDATE a SET b ='0' WHERE c='1'';
    //執行多條查詢
    $_mysqli -> multi_query($_sql);
    //普通執行方法 $_mqsqli->query($_sql); 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章