细学PHP 09 MySql
1:mysql是什么?
答:mysql是一種開(kāi)源的,小型的數(shù)據(jù)庫(kù)
和PHP結(jié)合的非常緊密
比較流行的LAMP組合 指 linux apache mysql php
2:我怎么樣用Mysql?
答:下載mysql并安裝,
裝完之后,你的機(jī)器上,就有一個(gè)mysql程序始終在運(yùn)行,
這個(gè)程序可以放置你的數(shù)據(jù)。
3:PHP和mysql是什么關(guān)系?
答:php是php,mysql是mysql
但是,php可以接到上mysql,
并且操作mysql
4: 連接上mysql很容易,
但連接上mysql之后,操作mysql,存、取,刪,改數(shù)據(jù)
mysql增刪改查數(shù)據(jù)又有mysql自身的語(yǔ)法。
即:連上mysql容易,但連上后
你要會(huì)基本的增刪改查 sql語(yǔ)句
5:我對(duì)mysql比較生怎么辦?
答:百度“燕十八 mysql”,下載41集教程,惡補(bǔ)。
在講完小項(xiàng)目之后,會(huì)考慮系統(tǒng)的講解mysql。
6:我安裝Mysql都不太會(huì)呢?
答:老師演示一遍。
你可以自己裝,也可以裝集成包,比如wamp
(因?yàn)閍pache+php+mysql的配置挺麻煩,新手建議先裝個(gè)集成包,等PHP入門后,再琢磨單獨(dú)安裝的方法)
?
7:在命令行下,連接上mysql,
這個(gè)黑窗口只是一個(gè)客戶端。
就像QQ與騰迅服務(wù)器的關(guān)系。
8:服務(wù)器就在那里,不遠(yuǎn)不近,不來(lái)不去。
客戶端去連服務(wù)器,要滿足服務(wù)器的連接規(guī)范。
反過(guò)來(lái)講:能滿足服務(wù)器的連接規(guī)范,進(jìn)行連接,就可以稱之為客戶端。
9:問(wèn):客戶端只有一種嗎?
比如 mysql.exe黑窗口,是mysql軟件自帶的客戶端,
還有navcat,mysqlfront,等等
就像apache是服務(wù)器,瀏覽器就是客戶端,而瀏覽器多種多樣
有chrome,firefox,IE,....
10:我們接下來(lái)要用php去連接mysql
自然php也充當(dāng)了客戶端的角色。
mysql_connect('localhost','root','111111',true);
最后一個(gè)參數(shù)true"是否重連的意思"。
$sql = 'use test';
// 發(fā)送sql,進(jìn)行查詢
$rs = mysql_query($sql,$conn); // 沿著conn通道進(jìn)行查詢
$sql = 'set names utf8';
mysql_query($sql,$conn);
$sql = "insert into stu values ($id,'$sname','$sname')";
$rs = mysql_query($sql,$conn);
print_r(mysql_fetch_assoc($rs));
/*
mysql_fetch_assoc取出的是 關(guān)聯(lián)數(shù)組
而且:
鍵-->表的字段名
值-->字段的值
Array
(
??? [id] => 16
??? [sname] => acnwhu
??? [yy] => acnwhu
)
*/
print_r(mysql_fetch_row($rs));
/*
mysql_fetch_row 取出的結(jié)果是一個(gè) 索引數(shù)組
而且:
字符從左到右,索引依次是0,1,2...N
Array
(
??? [0] => 5
??? [1] => stu5'
??? [2] => yy333333
)
*/
print_r(mysql_fetch_array($rs));
/*
mysql_fetch_array 取出的結(jié)果 既有數(shù)字索引,也有字段索引
是 前2者結(jié)果的 并集
Array
(
??? [0] => 46
??? [id] => 46
??? [1] => rxyzqu
??? [sname] => rxyzqu
??? [2] => rxyzqu
??? [yy] => rxyzqu
)
*/
?
print_r($obj = mysql_fetch_object($rs));
/*
mysql_fetch_object 返回的是對(duì)象
stdClass Object
(
??? [id] => 33
??? [sname] => stu3333
??? [yy] => yy333333
)
?
/*
PHP 操作 mysql的其他幾個(gè)常用函數(shù)
*/
$conn = mysql_connect('localhost','root','111111');
if(!$conn) {
??? echo '連接數(shù)據(jù)庫(kù)失敗';
??? exit;
}
// 選庫(kù)
$sql = 'use test';
mysql_query($sql,$conn);
$id = isset($_GET['id']) ? $_GET['id'] + 0 :0;
// 接收id后,我準(zhǔn)備刪除數(shù)據(jù)
$sql = 'delete from stu where id=' . $id;
$rs = mysql_query($sql,$conn);
if($rs) {
??? echo '刪掉了一行數(shù)據(jù)<br />';
} else {
??? echo '刪數(shù)據(jù)失敗<br />';
}
/*
嚴(yán)重注意:
對(duì)于增/刪/改 來(lái)說(shuō),返回值 都是true/false2種情況
其中:insert,返回true,數(shù)據(jù)肯定是插入成功了.
對(duì)于update/delete ,即修改/刪除來(lái)說(shuō)
返回為真,代表:這個(gè)sql的語(yǔ)法沒(méi)有問(wèn)題,執(zhí)行成功了.
是從語(yǔ)法角度/執(zhí)行角度來(lái)說(shuō)的.
但是,未必這個(gè)語(yǔ)句能影響到數(shù)據(jù),比如你的條件不對(duì).
就好比說(shuō): 通知書童,把昨天的垃圾扔了,書童年去扔,但發(fā)現(xiàn)昨天就已扔了.
返回的true ,是指你通知書童,書童也答應(yīng)你去干活了.
但是:沒(méi)有垃圾要扔.
所以,要想真正判斷有沒(méi)有刪/改數(shù)據(jù),得以實(shí)際影響的行數(shù)為準(zhǔn)
那么,在執(zhí)行delete/update后,如果獲取受影響行數(shù)?
答:用函數(shù) mysql_affected_rows
*/
/*
mysql_affected_rows : 在執(zhí)行delete/update后立即調(diào)用此函數(shù),
可得到delete/update語(yǔ)句影響的行數(shù).
*/
$cnt = mysql_affected_rows($conn);
if($cnt) {
??? echo '刪掉了',$cnt,'行數(shù)據(jù)';
} else {
??? echo '沒(méi)有數(shù)據(jù)被刪掉';
}
?
// 繼承來(lái)看,還剩下多少條數(shù)據(jù)
echo '<br />';
$sql = 'select * from stu';
$rs = mysql_query($sql,$conn);
/**
// 這是笨辦法,循環(huán)一遍
// 有現(xiàn)在函數(shù)可以用
$num = 0;
while(mysql_fetch_assoc($rs)) {
??? $num++;
}
**/
/*
mysql_num_rows , 返回 select 語(yǔ)句的結(jié)果行數(shù)
在運(yùn)行select 之后,立即調(diào)用mysql_num_rows 可以得到這次select的行數(shù)
*/
$num = mysql_num_rows($rs);
echo '還剩下',$num,'條數(shù)據(jù)';
?
$conn = mysql_connect('localhost','root','111111');
$db = 'test';
$sql =? 'use'.$db;
echo $sql;
mysql_query($sql,$conn);
$sql = 'delete from stu where id=5';
if(mysql_query($sql,$conn)) {
??? echo '刪除成功';
} else { // 查詢失敗,就把錯(cuò)誤信息打出來(lái)
??? echo '刪除失敗';
??? echo '原因:',mysql_errno(),'~',mysql_error();
}
?
在完成操作數(shù)據(jù)庫(kù)連接后進(jìn)行完相關(guān)操作,請(qǐng)注意及時(shí)關(guān)閉連接。
mysql_close($conn);
轉(zhuǎn)載于:https://www.cnblogs.com/cnmice/archive/2013/04/07/3006128.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的细学PHP 09 MySql的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 那天有个小孩跟我说LINQ(四)
- 下一篇: WordPress /wp-admin/