PHP操作mysql數(shù)據(jù)庫

PHP 操作 MySQL 數(shù)據(jù)庫

  1. 連接 MySQL 服務(wù)器,連接數(shù)據(jù)庫
  2. 進(jìn)行數(shù)據(jù)庫的操作(CURD)
  3. 斷開數(shù)據(jù)庫,斷開服務(wù)器

1. 連接數(shù)據(jù)庫

MySQLi 只針對 MySQL 數(shù)據(jù)庫顿仇,PDO 應(yīng)用 12 種不同數(shù)據(jù)庫中及汉。

MySQLi 使用面向?qū)ο螅?/h6>
<?php
$servername="localhost";
$username="root";
$password="";
$dbname="shopdb";
// 創(chuàng)建連接  1.實(shí)例化MySQLi對象
$conn=new mysqli($servername,$username,$password,$dbname);
// 檢測連接
// 2.連接失敗 判斷標(biāo)志
// connect_errno  --錯(cuò)誤代碼
// connect_error
// if($conn->connect_error){
//     die('連接失敗:'.$conn->connect_error);
// }
if($conn->connect_errno){
    // 如果是非0,代表連接失敗
    // 顯示失敗信息
    die($conn->error);
}
// echo '連接成功';
// 3.消除亂碼 --設(shè)置編碼格式  執(zhí)行SQL語句
$conn->query('set names utf8');

// 4. 執(zhí)行操作
$res=$conn->query('select * from `tab_goods`');
var_dump($res);
$conn->close();

?>
PDO 連接數(shù)據(jù)庫
new PDO("mysql:host=$hostname;dbname=$dbname",$username,$password)';
/**
 * arg1: 'mysql:host=MySQL主機(jī)名;dbname=數(shù)據(jù)庫名稱'
 * $username: 數(shù)據(jù)庫的用戶名
 * $password: 數(shù)據(jù)庫的密碼
*/
$dbms='mysql';     //數(shù)據(jù)庫類型
$servername="localhost";
$username="root";
$password="";
$dbname="shopdb";
$dsn="$dbms:host=$servername;dbname=$dbname";

try{
    $conn=new PDO($dsn,$username,$password);
    echo '連接成功';
}catch(PDOException $e){
    echo $e->getMessage();
}

2.執(zhí)行數(shù)據(jù)庫操作

2.1 MySQLi 類庫通過 query 函數(shù)執(zhí)行 SQL 語句做對應(yīng)的數(shù)據(jù)庫操作。
$dbms='mysql';     //數(shù)據(jù)庫類型
$hostname="localhost";
$username="root";
$password="";
$dbname="demodb";
$dsn="$dbms:host=$hostname;dbname=$dbname";
// 創(chuàng)建連接
$mysqli=new mysqli($hostname,$username,$password,$dbname);
// 檢查連接
if($mysqli->connect_error){
    die("連接失敗".$conn->connect_error);
}

// 準(zhǔn)備SQL語句 開始執(zhí)行數(shù)據(jù)庫操作
$sql="SELECT * FROM `tab_goods`";
// 通過query函數(shù)執(zhí)行SQL語句  得到結(jié)果集對象mysqli_result(不直接包含數(shù)據(jù))
$result=$mysqli->query($sql);
// mysqli_result類中的成員屬性
// $current_field:獲取當(dāng)前結(jié)果中指向的字段偏移位置,是一個(gè)整數(shù)。
// $field_count:從查詢結(jié)果中獲取列的個(gè)數(shù)宛乃。
// $lengths:返回一個(gè)數(shù)組,保存在結(jié)果集中獲取當(dāng)前行的每一個(gè)列的長度蒸辆。
// $num_rows:返回結(jié)果集中包含記錄的行數(shù)征炼。
//
2.1.1 獲取數(shù)據(jù)
返回單條記錄

成員方法 fetch_array 以混合數(shù)組的形式返回單條記錄 (索引數(shù)組+關(guān)聯(lián)數(shù)組(key-value))

var_dump($result->fetch_array());

成員方法 fetch_object fetch_assoc 以對象的形式返回單條記錄

var_dump($result->fetch_object());
var_dump($result->fetch_assoc());

成員方法 fetch_row 以索引數(shù)組的形式返回單條記錄

var_dump($result->fetch_row());

#######返回所有記錄

$data=$result->fetch_all(MYSQLI_ASSOC);//推薦使用
$data=$result->fetch_all(MYSQLI_NUM);
$data=$result->fetch_all(MYSQLI_BOTH);

fetch_all 函數(shù)接受 三種不同的參數(shù) (系統(tǒng)常量)

1.MYSQLI_ASSOC 返回關(guān)聯(lián)數(shù)組--(與 fetch_assoc 函數(shù)返回的類型相同。)
2.MYSQLI_NUM 返回索引數(shù)組--(與 fetch_row 函數(shù)返回的類型相同躬贡。)
3.MYSQLI_BOTH 返回混合數(shù)組--(與 fetch_array 函數(shù)返回的類型相同谆奥。)
#######2.1.2 新增/修改/刪除數(shù)據(jù)
通過 query 函數(shù)執(zhí)行后返回的結(jié)果集進(jìn)行判定。false --失敗

$dbms='mysql';     //數(shù)據(jù)庫類型
$hostname="localhost";
$username="root";
$password="";
$dbname="demodb";
$dsn="$dbms:host=$hostname;dbname=$dbname";
// 創(chuàng)建連接
$mysqli=new mysqli($hostname,$username,$password,$dbname);
// 檢查連接
if($mysqli->connect_error){
    die("連接失敗".$conn->connect_error);
}
$sql="insert into `tab_goods` (`name`,`price`,`description`,`count`) values('huskyuncle',2.5,'賤賣賤賣2.5甩賣了',1);";
$sql1=sprintf("insert into `tab_goods` (`name`,`price`,`description`,`count`) values(%s,%s,%s,%s);",'aaa',23,'描述方式的發(fā)順豐',345);
$res=$mysqli->query($sql1);
if($res===TRUE){
    ECHO '新紀(jì)錄插入成功';
}else {
    echo 'error';
}

2.2 PDO 類庫數(shù)據(jù)庫操作逗宜。

通過 exec(),query()兩個(gè)函數(shù)執(zhí)行數(shù)據(jù)庫操作.

1.exec() 執(zhí)行一條 SQL 語句雄右,返回后影響的行數(shù)。
2.query() 執(zhí)行一條 SQL 語句纺讲,返回一個(gè) PDOStatement 對象

// EXEC  適用于增刪改
$dbms='mysql';
$hostname='localhost';
$dbname='demodb';
$username='root';
$password='';
$dsn="$dbms:host=$hostname;dbname=$dbname";

try{
    $conn=new PDO($dsn,$username,$password);
    $sql='delete from `tab_goods` where `id`=13';
    $res=$conn->exec($sql);
    var_dump($res);

}catch(PDOException $e){
    echo $e->getMessage();
}

query() 函數(shù)返回 PDOStatement 對象,PDOStatement 對象提供了一系列的函數(shù)囤屹,其中有fetchAll(),用來獲取結(jié)果集中的所有數(shù)據(jù)熬甚,接受常用幾種參數(shù):PDO::FETCH_BOTH(混合數(shù)組),PDO::FETCH_ASSOC(對象),PDO::NUM(索引數(shù)組);
``
// QUERY 適用于查詢
dbms='mysql';hostname='localhost';
dbname='demodb';username='root';
password='';dsn="dbms:host=hostname;dbname=$dbname";

try{
conn=new PDO(dsn,username,password);
sql='select * from `tab_goods`';res=conn->query(sql);
res->fetchAll(PDO::FETCH_ASSOC) var_dump(res);

}catch(PDOException e){ echoe->getMessage();
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市肋坚,隨后出現(xiàn)的幾起案子乡括,更是在濱河造成了極大的恐慌,老刑警劉巖智厌,帶你破解...
    沈念sama閱讀 223,126評(píng)論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诲泌,死亡現(xiàn)場離奇詭異,居然都是意外死亡铣鹏,警方通過查閱死者的電腦和手機(jī)敷扫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诚卸,“玉大人葵第,你說我怎么就攤上這事绘迁。” “怎么了卒密?”我有些...
    開封第一講書人閱讀 169,941評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵缀台,是天一觀的道長。 經(jīng)常有香客問我哮奇,道長膛腐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,294評(píng)論 1 300
  • 正文 為了忘掉前任鼎俘,我火速辦了婚禮依疼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘而芥。我一直安慰自己律罢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評(píng)論 6 398
  • 文/花漫 我一把揭開白布棍丐。 她就那樣靜靜地躺著误辑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪歌逢。 梳的紋絲不亂的頭發(fā)上巾钉,一...
    開封第一講書人閱讀 52,874評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音秘案,去河邊找鬼砰苍。 笑死,一個(gè)胖子當(dāng)著我的面吹牛阱高,可吹牛的內(nèi)容都是我干的赚导。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼赤惊,長吁一口氣:“原來是場噩夢啊……” “哼吼旧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起未舟,我...
    開封第一講書人閱讀 40,249評(píng)論 0 277
  • 序言:老撾萬榮一對情侶失蹤圈暗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后裕膀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體员串,經(jīng)...
    沈念sama閱讀 46,760評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評(píng)論 3 343
  • 正文 我和宋清朗相戀三年昼扛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寸齐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,973評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖访忿,靈堂內(nèi)的尸體忽然破棺而出瞧栗,到底是詐尸還是另有隱情,我是刑警寧澤海铆,帶...
    沈念sama閱讀 36,631評(píng)論 5 351
  • 正文 年R本政府宣布迹恐,位于F島的核電站,受9級(jí)特大地震影響卧斟,放射性物質(zhì)發(fā)生泄漏殴边。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評(píng)論 3 336
  • 文/蒙蒙 一珍语、第九天 我趴在偏房一處隱蔽的房頂上張望锤岸。 院中可真熱鬧,春花似錦板乙、人聲如沸是偷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛋铆。三九已至,卻和暖如春放接,著一層夾襖步出監(jiān)牢的瞬間刺啦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評(píng)論 1 275
  • 我被黑心中介騙來泰國打工纠脾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玛瘸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,431評(píng)論 3 379
  • 正文 我出身青樓苟蹈,卻偏偏與公主長得像糊渊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子汉操,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • PHP 操作 MySQL 數(shù)據(jù)庫 連接 MySQL 服務(wù)器,連接數(shù)據(jù)庫 進(jìn)行數(shù)據(jù)庫的操作(CURD) 斷開數(shù)據(jù)庫,...
    默閑閱讀 461評(píng)論 0 3
  • [TOC] PHP 操作 MySQL 數(shù)據(jù)庫 連接 MySQL 服務(wù)器,連接數(shù)據(jù)庫 進(jìn)行數(shù)據(jù)庫的操作(CURD) ...
    哈士奇大叔閱讀 502評(píng)論 0 3
  • PHP支持哪些數(shù)據(jù)庫 PHP通過安裝相應(yīng)的擴(kuò)展來實(shí)現(xiàn)數(shù)據(jù)庫操作再来,現(xiàn)代應(yīng)用程序的設(shè)計(jì)離不開數(shù)據(jù)庫的應(yīng)用,當(dāng)前主流的數(shù)...
    雪碧spirit閱讀 910評(píng)論 1 5
  • PHP支持哪些數(shù)據(jù)庫 PHP通過安裝相應(yīng)的擴(kuò)展來實(shí)現(xiàn)數(shù)據(jù)庫操作磷瘤,現(xiàn)代應(yīng)用程序的設(shè)計(jì)離不開數(shù)據(jù)庫的應(yīng)用,當(dāng)前主流的數(shù)...
    敬業(yè)福閱讀 2,100評(píng)論 0 1
  • 一、PHP連接mysql服務(wù)器 1挠他、mysqli_connect() ①描述:連接到 MySQL服務(wù)器②語法:my...
    老衲灬閱讀 700評(píng)論 0 0