PHP mysqli 運算元據庫

2021-08-02 21:08:41 字數 3489 閱讀 3624

mysqli 連線相關的

mysqli_result 處理結果集

mysqli_stmt 預處理類

<?php

$db_host = 'localhost';

$db_name = 'test';

$db_user = 'root';

$db_pwd = '';

//物件導向方式

$mysqli = new mysqli($db_host, $db_user, $db_pwd, $db_name);

//物件導向的昂視遮蔽了連線產生的錯誤,需要通過函式來判斷

if(mysqli_connect_error())

//設定編碼

$mysqli->set_charset("utf8");//或者 $mysqli->query("set names 'utf8'")

//關閉連線

$mysqli->close();

//面向過程方式的連線方式

$mysqli = mysqli_connect($db_host, $db_user, $db_pwd, $db_name);

//判斷是否連線成功

if(!$mysqli )

//關閉連線

mysqli_close($mysqli);

?>

通用:執行sql語句都可用query(sql),執行失敗會返回false,select成功則返回結果集物件,其他返回true,只要不是false就說明sql語句執行成功了。

<?php

//無結果集示例

$sql = "insert into table_name (`name`, `address`) values ('xiaoming', 'adddddrrreess')";

$result = $mysqli->query($sql);

//或者

$sql = "delete from table_name where name='xiaoming'";

$result = $mysqli->query($sql);

if($result === false)

//影響條數

echo $mysqli->num_rows;

//插入的id

echo $mysqli->insert_id;

$mysqli->close();

有結果集

<?php

$sql = "select * from table_name";

$result = $mysqli->query($sql);

if($result === false)

//行數

echo $result->num_rows;

//列數 字段數

echo $result->field_count;

//獲取字段資訊

$field_info_arr = $result->fetch_fields();

//移動記錄指標

//$result->data_seek(1);//0 為重置指標到起始

//獲取資料

while($row = $result->fetch_assoc())

//也可一次性獲取所有資料

//$result->data_seek(0);//如果前面有移動指標則需重置

$data = $result->fetch_all(mysqli_assoc);

$mysqli->close();

預處理能有效的防止sql注入的產生,mysqli_stmt是預處理類

<?php

$sql = "insert inro table_name ('name','address') values (?,?)";

//獲得預處理物件

$stmt = $mysqli->prepare($sql);

//繫結引數 第乙個引數為繫結的資料型別

/*i:integer 整型

d:double 浮點型

s:string 字串

b:a blob packets blob資料報

*/$name = "xiaoming";

$address = "adddressss";

$stmt->bind_param("ss", $name, $address);//繫結時使用變數繫結

//執行預處理

$stmt->execute();

/*//可重新繫結 多次執行

$stmt->bind_param("ss", $name, $address);

$stmt->execute();

*///插入的id 多次插入為最後id

echo $stmt->insert_id;

//影響行數 也是最後一次執行的

echo $stmt->affected_rows;

//錯誤號

echo $stmt->errno;

//錯誤資訊

echo $stmt->error;

//關閉

$stmt->close();

$mysqli->close();

下面示例select的預處理

//注釋部分省略

$sql = "select * from table_name where id<?";

$stmt = $mysqli->prepare($sql);

$id = 30;

$stmt->bind_param("i", $id);

$stmt->execute();

//獲取結果集

$result = $stmt->get_result();//結果集取後的操作就和之前一樣了

//獲取所有資料

$data = $result->fetch_all(mysqli_assoc);

$result->close();

$mysqli->close();

一次執行多條sql語句multiquery(不推薦),執行結果不是結果集,affectd_rows是最後影響的條數

<?php

$sql_arr = array(

"insert into table_name (`name`,`address`) values ('xiaoming','a')",

"insert into table_name (`name`,`address`) values ('xiaohong','a')",

'delete from table_name where id=23',

);$sql = implode(';', $sql_arr);

$result = $mysqli->multi_query($sql);

if($result === false)

$mysqli->close();

PHP mysqli 運算元據庫

mysqli 連線相關的 mysqli result 處理結果集 mysqli stmt 預處理類 db host localhost db name test db user root db pwd 物件導向方式 mysqli new mysqli db host,db user,db pwd,d...

運算元據庫

python importmysqldb defmydbtest conn mysqldb.connect host localhost user root passwd sa db b4img charset utf8 cursor conn.cursor sql select from imag...

運算元據庫

2.localhost 的位址 檢視 一般位於c windows system32 driver etc下,一般在最後有這麼一行 127.0.0.1 localhost 資料庫操作方法 鏈結資料庫 建立資料庫表 資料庫插入操作 資料庫查詢操作 後記 try 使用 fetchone 方法獲取一條資料 ...