mysql_query($db);
成都創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的十多年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶,如紗窗等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶的一致稱贊。
這是要干什么?。堪堰@句去掉;
$sql="select *from user where name=$username and password=$pws;"
改成
$sql="select * from user where name='".$username."' and password='".$pws."'";
1.*號(hào)后邊應(yīng)該有空格;
2.最后的分號(hào)應(yīng)該在引號(hào)外邊;
3.查詢語(yǔ)句中的字符串應(yīng)該加引號(hào);
試試看
另外提兩點(diǎn)建議:
1 $db=mysql_select_db("B");
寫成 $db=mysql_select_db("B",$link);
養(yǎng)成個(gè)好習(xí)慣,省得到用到多個(gè)數(shù)據(jù)庫(kù)時(shí)容易亂;
2.$_SESSION["name"]="2";//先將值定義為假//
定義為假的時(shí)候直接 $_SESSION["name"]="" 就好了,要不多亂啊。
3. if($row==1)
{
$_SESSION["name"]="1";
}
else $_SESSION["name"]="2";
前邊已經(jīng)定義完 $_SESSION["name"]="2 了 后邊這個(gè) else 就沒(méi)有必要寫了啊。
你應(yīng)該先定位是哪里錯(cuò)了啊,在每個(gè)數(shù)據(jù)庫(kù)操作語(yǔ)句后邊都加上, or die(mysql_error());
根據(jù)錯(cuò)誤提示看看錯(cuò)誤出在哪,看不懂的話把錯(cuò)誤提示語(yǔ)句一起發(fā)上來(lái),效率會(huì)更高 呵呵。
你應(yīng)該先看看執(zhí)行的是那條語(yǔ)句,然后看看執(zhí)行這條語(yǔ)句的條件,這樣往前推,你的錯(cuò)誤也有可能在登錄頁(yè)面上,仔細(xì)找找多看幾遍代碼你一定能找到的。
一般情況下,MYSQL在更新操作會(huì)自動(dòng)加表鎖。不需要顯式加鎖。除非是數(shù)據(jù)要求嚴(yán)格的邏輯寫順序。
執(zhí)行查詢語(yǔ)句(SELECT)前,會(huì)自動(dòng)給涉及的所有表加讀鎖,在執(zhí)行更新操作 (UPDATE、DELETE、INSERT等)前,會(huì)自動(dòng)給涉及的表加寫鎖,這個(gè)過(guò)程并不需要用戶干預(yù),因此,用戶一般不需要直接用LOCK TABLE命令給MyISAM表顯式加鎖。
首先,這個(gè)問(wèn)題只有在特殊情況下才算是問(wèn)題,大多數(shù)情況下可以不作考慮。
然后,這是問(wèn)題很難描述清楚,解決方案有多種,下面提供一種較方便易用的方式
場(chǎng)景(問(wèn)題)描述如下:
0,用戶A、B同時(shí)打開(kāi)一個(gè)頁(yè)面,頁(yè)面顯示,客戶表T_CUSTOMER字段(C_NAME、C_AGE)
姓名:張三,年齡:25
1,A 將姓名“張三”改為“張三1”,然后保存
2,B 將年齡“25”改為“30”,然后保存
這樣A的操作就被覆蓋了,姓名又變回“張三”了,大家一般怎么處處這種情況?
這里給出一個(gè)較易用的解決方案
給表添加一字段:LAST_UPDATE,即最后更新時(shí)間
回放場(chǎng)景
0,用戶A、B同時(shí)打開(kāi)一頁(yè)面,面頁(yè)顯示:
姓名:張三,年齡:25,LAST_UPDATE:2008-10-17 13:45:00
1,A 將姓名“張三”改為“張三1”,然后保存
重點(diǎn)在這里:更新數(shù)據(jù)時(shí)WHERE條件里多一條件:AND LAST_UPDATE = '2008-10-17 13:45:00'
更新成功,此時(shí)觸發(fā)器會(huì)將當(dāng)前時(shí)間“2008-10-17 13:46:00”賦值給LAST_UPDATE
2,B 將將年齡“25”改為“30”,然后保存
B更新數(shù)據(jù)時(shí)WHERE條件里也有這個(gè)條件:AND LAST_UPDATE = '2008-10-17 13:45:00',但此時(shí)LAST_UPDATE的值已經(jīng)在A修改記錄時(shí)變成2008-10-17 13:46:00
下面要做的就是給出提示了:喔喲,此信息在你發(fā)呆這段時(shí)間已被人改過(guò)啦,所以你需要返工。
觸發(fā)器代碼如下:
===================================================
CREATE OR REPLACE TRIGGER T_CUSTOMER
BEFORE UPDATE ON T_CUSTOMER
FOR EACH ROW
/*
記錄最后修改時(shí)間
*/
BEGIN
:NEW.LAST_UPDATE := SYSDATE;
END;
===================================================
如果觸發(fā)器不熟悉或者只是不喜歡用觸發(fā)器,完全可以修改記錄時(shí)同時(shí)給LAST_UPDATE字段賦值,以此替代觸發(fā)器的作用。
本文名稱:php數(shù)據(jù)庫(kù)上鎖 php鎖機(jī)制
分享網(wǎng)址:http://muchs.cn/article42/hjophc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站制作、網(wǎng)站維護(hù)、網(wǎng)站設(shè)計(jì)公司、、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容