對於update、insert、delete請參考
<?php$mysqli = new mysqli();
$mysqli->connect("localhost","root","root","test");
if ( $mysqli->connect_errno )
$mysqli->set_charset("utf8");
$sql = "select * from mysqli;";
$mysqli_result = $mysqli->query($sql);
if( ! $mysqli_result ) else
$mysqli->close();
?>
結果如下:
mysqli_result object( [current_field] => 0
[field_count] => 2
[lengths] =>
[num_rows] => 3
[type] => 0
)
上面的這幾項都是mysqli_result類的成員屬性,都是可以通過mysqli_result的物件加 ->屬性訪問,比如檢視結果集的條數
<?php$mysqli = new mysqli();
$mysqli->connect("localhost","root","root","test");
if ( $mysqli->connect_errno )
$mysqli->set_charset("utf8");
$sql = "select * from mysqli;";
$mysqli_result = $mysqli->query($sql);
if( ! $mysqli_result ) else
$mysqli->close();
?>
使用mysql_result::fetch_all([fetch_type])方法獲取乙個索引陣列的結果集,該結果集為完整的結果集;
引數fetch_type可以為mysqli_num(索引陣列,預設)、mysqli_assoc(關聯陣列)、mysqlli_both(兩者都要),但是這個方法只適用於mysqlnd,mysqlnd在php5.4以後已經作為預設驅動,
<?php$mysqli = new mysqli();
$mysqli->connect("localhost","root","root","test");
if ( $mysqli->connect_errno )
$mysqli->set_charset("utf8");
$sql = "select * from mysqli;";
$mysqli_result = $mysqli->query($sql);
if( $mysqli_result && $mysqli_result->num_rows>0 ) else
$mysqli->close();
?>
結果如下:
array( [0] => array
([0] => 1
[1] => aaaa
)[1] => array
([0] => 2
[1] => bbbb
))
移動內部指標:mysqli_result::data_seek( int offset ) 只需指定offset值即可。
使用mysqli_result::fetch_row()來獲取「指標所值」的一條資料,每取一次資料,指標指向下一條記錄,結果以索引陣列返回。
使用mysqli_result::fetch_array([fetch_type]),引數fetch_type可以為mysqli_num(索引陣列)、mysqli_assoc(關聯陣列)、mysqlli_both(兩者都要,預設)
使用mysqli_result::fetch_assoc()來獲取一條資料,和fetch_row類似,只不過返回的結果集是以關聯陣列形式。
還可以使用fetch_object()以乙個物件的形式返回。
<?php$mysqli = new mysqli();
$mysqli->connect("localhost","root","root","test");
if ( $mysqli->connect_errno )
$mysqli->set_charset("utf8");
$sql = "select * from mysqli;";
$mysqli_result = $mysqli->query($sql);
if( $mysqli_result && $mysqli_result->num_rows>0 ) else
$mysqli->close();
?>
mysqli_result::free
mysqli_result::close
mysqli_result::free_result
這三者都可以
<?php$mysqli = new mysqli();
$mysqli->connect("localhost","root","root","test");
if ( $mysqli->connect_errno )
$mysqli->set_charset("utf8");
$sql = "select * from mysqli;";
$mysqli_result = $mysqli->query($sql);
if( $mysqli_result && $mysqli_result->num_rows>0 )
$mysqli_result->free_result(); //釋放結果集
} else
$mysqli->close();
?>
<?php$mysqli = new mysqli();
$mysqli->connect("localhost","root","root","test");
if ( $mysqli->connect_errno )
$mysqli->set_charset("utf8");
$sql = "select * from mysqli;";
$mysqli_result = $mysqli->query($sql);
if( $mysqli_result && $mysqli_result->num_rows>0 )
$mysqli_result->free_result(); //釋放結果集
} else
$mysqli->close();
?>
MySQLi物件導向實踐 multi query
多條用分號分隔的sql語句中,只要有一條sql語句執行失敗,那麼這一條sql語句以及之後的sql語句就不會執行。只有當第一條sql語句執行失敗,那麼multi query 的返回值才為false。如果第一條sql語句執行成功了,那麼都會返回true。mysqli new mysqli mysqli ...
物件導向的mysqli基礎
mysqli作為php擴充套件庫的一部分是乙個很好的運算元據庫的介面。mysqli的操作方式有兩種,一種是面向過程的,另一類是物件導向的。本文主要講的是物件導向的mysqli操作,主要是作為乙個引子,更多的東西希望能多多參考php官方文件,看完本文再參考一下文件,相信對mysqli的操作會容易上手 ...
MySQLi基於物件導向的程式設計
mysqli在windows上,對於php 5.3或更新版本,mysqli擴充套件預設開啟,對於php 5.0 5.1 5.2,mysqli擴充套件預設並不會開啟,因此php.ini中php mysqli.dll這個dll 必須開啟。mysqli基於面向過程的程式設計和物件導向的程式設計是相對的,其...