MySQLi面向對象實踐--insert、update、delete

執行insert

<?php
    $mysqli = new Mysqli();
    $mysqli->connect("localhost","root","root","test");
    if ( $mysqli->connect_errno ){
        die( $mysqli->connect_error );
    }
    $mysqli->set_charset("utf8");
    $sql = "insert into mysqli (id, name) values (null, 'liming')";
    $res = $mysqli->query($sql);
    var_dump($res);
    if( $res ){
        echo $mysqli->insert_id; 
    } else {
        echo "error:".$mysqli->errno." : ".$mysqli->error;
    }
    $mysqli->close();
?>

  

執行update

<?php
    $mysqli = new Mysqli();
    $mysqli->connect("localhost","root","root","test");
    if ( $mysqli->connect_errno ){
        die( $mysqli->connect_error );
    }
    $mysqli->set_charset("utf8");
    $sql = "update mysqli set name = 'doUpdate' where id>8;";
    $res = $mysqli->query($sql);
    var_dump($res);
    if( $res ){
        echo $mysqli->affected_rows; //返回上一條SQL語句影響的記錄條數
    } else {
        echo "error:".$mysqli->errno." : ".$mysqli->error;
    }
    $mysqli->close();
?>

 

  

執行刪除

<?php
    $mysqli = new Mysqli();
    $mysqli->connect("localhost","root","root","test");
    if ( $mysqli->connect_errno ){
        die( $mysqli->connect_error );
    }
    $mysqli->set_charset("utf8");
    $sql = "delete  from mysqli where id>8;";
    $res = $mysqli->query($sql);
    var_dump($res);
    if( $res ){
        echo $mysqli->affected_rows; //返回上一條SQL語句影響的記錄條數
    } else {
        echo "error:".$mysqli->errno." : ".$mysqli->error;
    }
    $mysqli->close();
?>

  

注意一

對於affected_rows的值有這麼幾種狀況,以刪除記錄爲例php

  1 ->SQL語句正常執行,刪除的記錄數大於0,則affected_rows爲受影響的記錄數mysql

  2 ->SQL語句正常執行,沒有一條記錄符合條件,也就是刪除的記錄爲0,則affected_rows爲0sql

  3 ->SQL語句錯誤,也就是說SQL語句沒有真正執行,由於出現錯誤就stop了,此時affected_rows的值爲-1數據庫

注意二

  insert_id是指當前獲得SQL語句執行前,數據庫表中的auto_increment值(該值能夠經過在數據庫命令行中執行show create table tableName來查看),而不是SQL語句插入以後auto_increment的值。spa

  假設第一次數據庫爲空,插入1條數據以後,id變爲1,而auto_increment變爲2,而後經過insert 語句一次性的插入多條數據,而後再獲取auto_increment的值(即insert_id),值不會變爲最後插入的那一條數據的主鍵自增的id,而是執行插入多條數據以前的2。命令行

  若是表中沒有auto_increment,則insert_id返回0。blog

相關文章
相關標籤/搜索