PHP資料庫操作總結

2021-07-04 14:15:25 字數 4515 閱讀 8750

php鏈結資料庫操作我所知道的總共有3種方式,分別是mysql擴充套件庫,mysqli擴充套件庫,pdo三種方式,花了兩天時間做練習總結了一下,下面貼出了相關**。

一.使用mysql擴充套件庫運算元據庫

<?php

//使用mysql擴充套件

header("content-type:text/html;charset=utf-8");

$server="localhost";

$username="root";

$password="";

$link=mysql_connect($server,$username,$password) or die("連線失敗".mysql_errno().":".mysql_error()."

"); mysql_select_db("test", $link) or die("選擇資料庫失敗".mysql_errno().":".mysql_error()."

"); mysql_query("set names 'utf8'");

$sql="insert into student(id,name,age,***) values('','zhangsan','22','男')";

$result=mysql_query($sql);//mysql_query()執行select語句返回資源,執行非select返回boolean值

if($result)

else

//處理結果集

//mysql_fetch_row($result) //返回索引陣列

//mysql_fetch_assoc($result) //返回關聯陣列(下標:就是列表)

//mysql_fetch_array($result) //返回索引和關聯兩個陣列

//mysql_fetch_object($result)//將一條記錄以物件的形式返

//將指標移到到下一條記錄(預設是第一記錄,mysql_data_seek($result,row))

$sql="select * from student";

$result=mysql_query($sql);

while($row=mysql_fetch_assoc($result)) }

mysql_free_result($result);

mysql_close();

?>

二.使用mysqli擴充套件庫運算元據庫

<?php

//使用mysqli擴充套件

header("content-type:text/html;charset=utf-8");

$server="localhost";

$username="root";

$password="";

$database_name="test";

$mysqli=new mysqli($server,$username,$password,$database_name) or die("連線資料庫出錯:".mysqli_connect_errno()."->".mysqli_connect_error()."

"); $mysqli->set_charset("utf8");

$sql="insert into student(id,name,age,***) values('','lisi','22','男')";

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

if($result)

else

$sql="select * from student";

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

if($result)

}} else

//執行多條sql語句:$mysqli->multi_query($sqls);$result=$mysqli->store_result();$row=$result->fetch_assoc();

//事務處理

$mysqli->autocommit(0);//關閉自動提交

$error=true;//設定錯誤變數

$sql="insert into student(id,name,age,***)values('','王五','22','男')";

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

if($result)

else

$sql="insert into student(id,name,age,***)values('','趙六','20','女')";

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

if($result)

else

if($error==true)

else

$mysqli->autocommit(1);//開啟自動提交

//mysqli預處理

$sql="insert into student(id,name,age,***) values(?,?,?,?)";

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

//給佔位符號每個?號傳值(繫結引數) i d s b

$stmt->bind_param("isis",$id,$name,$age,$***);

$id="";

$name="zhang";

$age=22;

$***="男";

$stmt->execute();

if($stmt)

else

$sql="select * from student where name=?";

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

$stmt->bind_param("s",$name);

$stmt->bind_result($id,$name,$age,$***);

$name="zhang";

$stmt->execute();

$stmt->store_result();//獲取結果

while($row=$stmt->fetch())

$stmt->free_result();

$stmt->close();

//$result->free();

$mysqli->close();

?>

三.使用pdo運算元據庫

<?php

//使用pdo連線資料庫

header("content-type:text/html;charset=utf-8");

//資料庫配置資訊

$dsn="mysql:host=localhost;dbname=test";

$username="root";

$password="";

trycatch(pdoexception $e)

/*執行sql語句:

exec()//執行非select語句

query()//執行select語句

prepare()//預處理

*/$sql="insert into student(id,name,age,***) values('','burning','26','男')";

if($affected_rows=$pdo->exec($sql))

else

$sql="select * from student where name='burning'";

$stmt=$pdo->query($sql);

foreach($stmt as $row)

//事務處理

$pdo->setattribute(pdo::attr_autocommit, 0);//關閉自動提交

$pdo->begintransaction();//開啟事務

try

$sql="select * from student where name='gaybe'";

if($stmt=$pdo->query($sql))

}else

} catch(pdoexception $e)

$pdo->setattribute(pdo::attr_autocommit, 1);//開啟自動提交

//pdo預處理

$sql="insert into student(id,name,age,***) value (?,?,?,?)";

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

$array=array("","hang","22","男");

$stmt->execute($array);

$sql="select * from student where name=?";

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

$array=array("hang");

$stmt->execute($array);

while($row=$stmt->fetch())

?>

php資料庫操作

獲取鏈結 conn mysql connect localhost root root 測試當前連線的預設字符集名稱。charset mysql client encoding conn echo charset echo if conn else 設定gbk 就不會出現亂碼 雖然專案用的是utf ...

php資料庫操作

連線資料庫 header content type text html charset utf 8 define hostname localhost define username bestpool define password 123456 define database guess x co...

php 資料庫操作

pdo 連線資料庫 pdo new pdo mysql host 127.0.0.1 dbname php root root 準備sql語句,佔位符我們不再用?用 命名佔位符 sql delete from user where id id 建立預處理物件 stmt pdo prepare sql...