MySQLi物件導向實踐 select

2022-03-19 00:11:10 字數 3428 閱讀 6313

對於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基於面向過程的程式設計和物件導向的程式設計是相對的,其...