-
1痢甘、php數(shù)據(jù)庫(kù)編程
三種方式操作mysql數(shù)據(jù)庫(kù):
1、mysql擴(kuò)展庫(kù)
2簸搞、mysqli 擴(kuò)展庫(kù)
3扁位、pdo
-
2、mysql擴(kuò)展庫(kù)和mysql數(shù)據(jù)庫(kù)的區(qū)別趁俊。
2.1 擴(kuò)展庫(kù)是php里面的一些函數(shù)域仇,方便程序員操作mysql數(shù)據(jù)庫(kù)。mysql是用于存放數(shù)據(jù)的寺擂,主要的是數(shù)據(jù)表暇务。(還有其他的數(shù)據(jù)對(duì)象) 2.2 數(shù)據(jù)庫(kù)的三層結(jié)構(gòu):php程序==》dnms==>數(shù)據(jù)庫(kù)
Paste_Image.png -
3、 使用php的mysql擴(kuò)展庫(kù)對(duì)mysql操作的案例怔软。
3.1 啟用mysql擴(kuò)展庫(kù)
在php.ini文件中配置垦细,extension=hph_mysql.dll
<?php
// 1、獲取鏈接
$conn = mysql_connect("127.0.0.1","root","root");
if (!$conn) {
die("鏈接失敗".mysql_error());
}
// 2挡逼、選擇數(shù)據(jù)庫(kù)
mysql_select_db("test");
// 3括改、設(shè)置操作編碼(可以有)
mysql_query("set names utf8");
// 4、發(fā)送指令
$sql = "select *from user";
$res = mysql_query($sql,$conn);
var_dump($res);
// 5家坎、接受返回的結(jié)果嘱能、并處理
while ($row=mysql_fetch_row($res)) {
# code...
foreach ($row as $key => $value) {
echo "---$value";
}
}
// 6、釋放資源虱疏,關(guān)閉鏈接
mysql_free_result($res);
mysql_close($conn);// 可以有
?>
<!-- 1.使用完$res要自動(dòng)釋放資源
2.取到資源后惹骂,關(guān)閉鏈接沒(méi)有影響。
3.mysql_fetch_row函數(shù)做瞪,先自增对粪,在去數(shù)據(jù)(也就是去下一行的數(shù) 據(jù))
-->
<!--
四種取資源的函數(shù):
1、mysql_fetch_row 返回索引數(shù)組 整行數(shù)據(jù)取出
2装蓬、mysql_fetch_assoc 返回關(guān)聯(lián)數(shù)組(字段作為key)
3著拭、mysql_fetch_array 返回索引數(shù)組和關(guān)聯(lián)數(shù)組(兩個(gè))
4、mysql_fetch_object 返回對(duì)象
-->
-
4.mysqli的使用(面向?qū)ο?
<?php
// 1.創(chuàng)建mysqli對(duì)象
$mysqli = new MySQLi("localhost","root","root","test");
//驗(yàn)證是否連接
if($mysqli->connect_error){
die("鏈接失敗".$mysqli->connect_error);
}
// 2.操作數(shù)據(jù)庫(kù)
$sql = "select *from user1";
//返回結(jié)果
$res = $mysqli->query($sql);
//3.處理結(jié)果
while($row=$res->fetch_row()){
foreach($row as $key=>$val){
ech "$val--";
}
// 4.關(guān)閉資源
$res->free(); // 釋放內(nèi)存
$mysqli->close();//關(guān)閉鏈接
?>
-
5.mysqli的使用(面向過(guò)程)省略
注意事項(xiàng):如果操作的字段類(lèi)型是String類(lèi)型矛物,則要求我們要用單引號(hào)括起來(lái)茫死,如果操作字段是值類(lèi)型,則不要求用單引號(hào)履羞。
-
6.再封裝一層
<?php
class SqlHelper{
private $mysqli;
private static $host="";
private static $user="";
private static $pwd="";
private static $db="";
public function __construct(){
&this->mysqli=new MySQLi(self::$host,self::$user,self::$pwd,self::$db);
if($this->mysqli->connect_error){
die("錯(cuò)誤".$this->mysqli->connect_error);
$this->mysqli->query("set names utf8");
}
}
public function execute_dql($sql) {
$res=$this->mysqli->query($sql) or die("操作dql").$this->mysql->error);
return $res;
}
public function execute_dml($sql) {
$res=$this->mysqli->query($sql) or die("操作dql").$this->mysql->error);
if (!$res) {
return 0;//表示失敗
} else {
if($this->mysqli->affected_rows>0){
return 1;//表示成功
}else {
return 2;// 表示沒(méi)有行受到影響
}
}
}
}
?>