mysqli 操作數據庫
從PHP5.0開始可以使用MySQLi,是一種面向對象的技術(以后新加功能都會以對象形式添加)
i:表示改進(也支持過程化的編程方式)
1.功能增加 2.效率大大增加(以后的PHP項目改成mysqli) 3.更穩定
在PHP的配置文件php.ini中開啟mysqli擴展;php/ext中是php的擴展庫
mysqli提供了3個類
1.mysqli:和數據庫連接有關的類(連接,選擇庫,發送SQL語句,設置字符集)
2.mysqli_result:表達了對數據庫的查詢所返回的結果集
屬性:
方法:
$result->fetch_row()
$result->fetch_assoc() ?建議用此
$result->fetch_array() ?(MYSQLI_NUM,MYSQLI_ASSOC,MYSQLI_BOTH(default))
$result->fetch_object()
獲取行:
獲取列:
以上兩個類可以完成mysql擴展的功能
3.mysqli_stmt:表達了一個預備好的語句
問題:使用過程化編程,還是面向對象編程
使用過程化的編程方式也比mysql中快,功能強,穩定,所以使用mysqli
mysql(i)_connect()
mysql(i)_select_db()
mysql(i)_query()
建議使用mysqli面向對象的方式
面向過程:連接、選擇庫、查詢、處理結果集、釋放資源、關閉連接
$mysqli=new mysqli("localhost","root","snail","mysqldb");
if(!$mysqli){
echo "ERROR:".mysqli_connect_error();
exit;
}
//$sql="desc shop";
//$sql="select * from shop";
$sql="select id '編號',name '名稱',price '價格' from shop";
$result=$mysqli->query($sql);
var_dump($result);
echo "
";
$rows=$result->num_rows;
$cols=$result->field_count;
echo "表 行{$rows},列{$cols}";
// $result->data_seek(40);
echo '';
while($field=$result->fetch_field()){
'.$result->current_field.'_['.$field->orgname.']'.$field->name.'('.$field->max_length.')
}
echo '';
while($row=$result->fetch_assoc()){
foreach($row as $col){
'.$col.'
}
echo '';
}
echo "";
$result->free();
$mysqli->close();
?>