php數(shù)據(jù)庫(kù)上鎖 php鎖機(jī)制

請(qǐng)PHP高手來(lái)解決,連接數(shù)據(jù)庫(kù)用戶登錄程序,。要求MD5密碼加密

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ì)找找多看幾遍代碼你一定能找到的。

開(kāi)發(fā)php網(wǎng)站,mysql做數(shù)據(jù)庫(kù)一定要用鎖嗎?

一般情況下,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表顯式加鎖。

php里如果二個(gè)人同時(shí)操一個(gè)數(shù)據(jù)庫(kù)里表的字段,怎么避免

首先,這個(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)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司