php的資料庫程式設計

2021-07-24 16:02:28 字數 3615 閱讀 4106

通過簡單的例子看看pdo程式設計的增刪改查

$pdo

=new pdo("mysql:host=localhost;dbname=statis_data","root","123456");

//增加

$id= rand(1,10000);

$insert_sql

="insert into test(id)values(:id)";

$result

=$pdo

->prepare($insert_sql);

$result

->execute(array(":id"

=>

$id));

$id2

= rand(1,10000);

$result

->bindparam(":id", $id2);

$result

->execute();

//刪除

$delete_sql

="delete from test where id in($id,$id2)";

$pdo

->exec($delete_sql);

//修改

$update_sql

="update test set id=111 where id=:id";

$result

=$pdo

->prepare($update_sql);

$id=

1;$result

->bindparam(":id", $id);

$result

->execute();

//查詢

$select_sql

="select * from test";

$query

=$pdo

->query($select_sql);

while($row

=$query

->fetch())

pdo程式設計為資料庫遷移做好準備。通常資料庫確定後是很少變得,至少網際網路開發是這樣的

pdo程式設計讀取缺點,相對於mysqli之類的擴充套件,會有一些效能損失,有些情況下這種損失

是無法接受的。

php的mysqli程式設計的例子

class

mysqlhandle

if(!isset($db_config["host"]) || !isset($db_config["user"]) || !isset($db_config["password"]) || !isset($db_config["db"]))

$this->host = $db_config["host"];

$this->user = $db_config["user"];

$this->password = $db_config["password"];

$this->db = $db_config["db"];

if(isset($db_config["port"])) $this->port = $db_config["port"];

if(isset($db_config["charsert"]))$this->charsert = $db_config["charsert"];

if(isset($db_config["timeout"])) $this->timeout = $db_config["timeout"];

$this->processconnect();

}public

function

processconnect

() $this->resource_arr[$db_key] = $this->current_connect;

}else

}public

function

getconnect

()

if(!$mysqli->real_connect($this->host,$this->user,$this->password,$this->db,$this->port))

$mysqli->set_charset($this->charset);

$this->current_connect = $mysqli;

}public

function

reconnect

() }catch(exception

$e) }while($try_time > 0);}}

public

function

__destruct

() public

function

checkconnect

() }

public

function

query

($sql)else

return

$ret;

}public

function

insert

($sql)

public

function

fetchrow

($sql)

return

$ret;

}public

function

fetchrows

($sql,$resulttype = mysqli_assoc)

$result->free();

}return

$ret;

}public

function

getqueryerror

() public

function

starttrans

() public

function

transcommit

() public

function

transrollback

()}

優化可以參考

mysql優化1

mysql優化2

索引和效能分析–網上找了10點,作為優化的補充吧

盡量避免在列上做運算,這樣會導致索引失敗

使用join時,應該用小結果集驅動大結果集。

注意like模糊查詢的使用,避免%%

僅列出需要查詢的字段,這對速度不會有明顯的影響,主要考慮節省記憶體。

使用批量插入語句節省互動。

limit的基數比較大的時候使用between。

不要使用rand()函式獲取多條隨機記錄

避免使用null。

不要使用count(id),而應該是count(*)。

不要做無謂的排序操作,而盡可能在索引中完成排序。

伺服器和配置優化

mysql瓶頸

如果mysql實在不滿足您的要求,mongodb,redis,memcache可以走起了
資料庫設計

正規化的問題,還是可以參考上面的部落格啦。
mysql的注入問題需要大家注意,注意轉義輸入輸出。

抽象出資料庫的一些常用的屬性和方法,子類去實現具體的部分

php資料庫程式設計,php資料庫程式設計步驟

php有三種方式來操作mysql資料庫 1.mysql擴充套件庫 2.mysqli擴充套件庫 3.pdo mysql擴充套件庫和mysql資料庫的區別 mysql資料庫用於存放資料 mysql資料庫的三層結構示意圖 mysql擴充套件庫是一堆函式,是php設計者提供給程式設計師用於完成對mysql資...

資料庫 資料庫程式設計二

標頭檔案 include include include include include include include ifdef cplusplus extern c endif 輔助方法實現 include pub.h 設定退格鍵不回顯 intset backkey 設定tremios的擦除字...

php資料庫程式設計 利用mysql擴充套件庫運算元據庫。

mysql擴充套件庫是一堆函式.是php設計者提供給程式設計師用於完成對mysql資料庫的各種操作 crud 使用php的mysql擴充套件庫完成對mysql操作的案例 1.編寫php程式完成對使用者表的顯示 mysql擴充套件庫操作mysql資料庫步驟如下 1.獲取連線 conn mysql co...