1.看看密碼是否被加密。
成都創(chuàng)新互聯(lián)主營(yíng)崇信網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開(kāi)發(fā),崇信h5小程序定制開(kāi)發(fā)搭建,崇信網(wǎng)站營(yíng)銷(xiāo)推廣歡迎崇信等地區(qū)企業(yè)咨詢(xún)
2.list($key,$value)=each($arr);
!!是 list($Uname,$Pwd)=mysql_fetch_row($result); 的錯(cuò)誤:
mysql_fetch_row($result) 返回一個(gè)數(shù)組
正確格式是:list($Uname,$Pwd)=each(mysql_fetch_row($result));
我建議一下吧,文本數(shù)據(jù)庫(kù)的例子本來(lái)太多,但是為了邏輯簡(jiǎn)化,最好通過(guò)專(zhuān)門(mén)接口實(shí)現(xiàn)文件與數(shù)據(jù)的轉(zhuǎn)換,可以采用我下面的模板編寫(xiě):
?php
//文件最前面定義兩個(gè)全局變量,數(shù)據(jù)庫(kù)文件名和用戶(hù)數(shù)組
$pwd_db_file='db.txt';
$UserPassword=array();
//下面的pwd_db_read函數(shù),把文件內(nèi)容讀入到全局?jǐn)?shù)組中
function pwd_db_read(){
global $pwd_db_file, $UserPassword;
$fp=fopen($pwd_db_file,'r');
while ($s=fgets($fp)){
list($usr,$pwd)=explode('|', $s);
$UserPassword[$usr]=$pwd;
}
fclose($fp);
}
//下面的pwd_db_write函數(shù)保存數(shù)組內(nèi)容到文件中
function pwd_db_write(){
global $pwd_db_file, $UserPassword;
fp=fopen($pwd_db_file, 'w');
foreach ($UserPassword as $usr=$pwd)
fputs($fp,"$usr|$pwd\n");
fclose($fp);
}
//有了上面的全局變量和函數(shù),要寫(xiě)什么功能都簡(jiǎn)單
//下面假釋本腳本調(diào)用的時(shí)候通過(guò)reg.php?job=adduser=...pass=...
//的格式進(jìn)行調(diào)用,job為add表示添加用戶(hù),del表示刪除,modi表示修改
//另外的user和pass表示用戶(hù)名或者密碼,job不是以上內(nèi)容表示登錄
//主程序一開(kāi)始就打開(kāi)數(shù)據(jù)庫(kù)
pwd_db_read();
//下面判斷功能
if ($jon=='add'){
if (array_key_exists($user,$UserPassword)) echo "用戶(hù) $user 已經(jīng)存在!"
else $UserPassword[$user]=$pass;//就一句話,簡(jiǎn)單吧
}elseif (job=='del'){
unset($UserPassword[$user]);//你自己考慮編寫(xiě)是否確認(rèn)刪除的內(nèi)容
}elseif ($job=='modi'){
if (array_key_exists($user,$UserPassword)) $UserPassword[$user]=$pass;//和添加是不是有點(diǎn)類(lèi)似
else echo "用戶(hù) $user 不存在!"
}else{
if ($UserPassword[$user]==$pass){
echo '密碼正確。';
//接下來(lái)可能要做許多事情
}else echo '密碼錯(cuò)誤!';
}
//程序最后保存數(shù)據(jù)庫(kù)修改
pwd_db_write();
?
看得懂嗎,沒(méi)有上機(jī)調(diào)試,語(yǔ)法問(wèn)題可能難免,如果發(fā)現(xiàn)不明白的問(wèn)題請(qǐng)補(bǔ)充。
大概的基本流程如下:
連接數(shù)據(jù)庫(kù),再加一個(gè)判斷。
選擇數(shù)據(jù)庫(kù)
讀取表
輸出表中數(shù)據(jù)
下面是代碼:
?php
$con = mysql_connect("localhost","root","abc123");
/* localhost 是服務(wù)器 root 是用戶(hù)名?abc123 是密碼*/?
if (!$con)
{
die("數(shù)據(jù)庫(kù)服務(wù)器連接失敗");
}
/*?這就是一個(gè)邏輯非判斷,如果錯(cuò)誤就輸出括號(hào)里的字符串 */?
@mysql_select_db("a",?$con);?
/*?選擇mysql服務(wù)器里的一個(gè)數(shù)據(jù)庫(kù),假設(shè)你的數(shù)據(jù)庫(kù)名為?a*/
$sql?=?"SELECT?*?FROM qq";?
/* 定義變量sql,?"SELECT?*?FROM?qq" 是SQL指令,表示選取表qq中的數(shù)據(jù)?*/
$result = mysql_query($sql); //執(zhí)行SQL語(yǔ)句,獲得結(jié)果集
/*下面就是選擇性的輸出打印了,由于不清楚你的具體情況給你個(gè)表格打印吧*/
//打印表格?
echo "table border=1";?
while( $row = mysql_fetch_array($result) )
/*逐行獲取結(jié)果集中的記錄,得到數(shù)組row?*/
{ ?
/*數(shù)組row的下標(biāo)對(duì)應(yīng)著數(shù)據(jù)庫(kù)中的字段值?*/
$id = $row['id'];?
$name = $row['name'];?
$sex = $row['sex'];?
echo "tr";?
echo "td$id/td";?
echo "td$name/td";?
echo "td$sex/td";?
echo "/tr";?
}?
echo "table /";
?
如果你的switch是表頭,就定義這個(gè)表頭字段,然后輸出。
要用javascript調(diào)用php獲取數(shù)據(jù)庫(kù)接口,是一個(gè)很常見(jiàn)的前后端交互操作
通過(guò)javascript發(fā)送http請(qǐng)求php的API接口,php連接數(shù)據(jù)庫(kù)并查詢(xún)結(jié)果,最后返回出來(lái)
這樣javascript就能獲取到數(shù)據(jù)庫(kù)的數(shù)據(jù)
PHP從數(shù)據(jù)庫(kù)提取并顯示數(shù)據(jù)的典型代碼如下:
?php
//連接數(shù)據(jù)庫(kù),三個(gè)參數(shù):數(shù)據(jù)庫(kù)服務(wù)器IP,用戶(hù)名,密碼
if(mysql_connect('127.0.0.1',?'root',?'123456')){
//數(shù)據(jù)庫(kù)連接成功,開(kāi)始查詢(xún),下面是SQL語(yǔ)句
//此例子SQL查詢(xún)數(shù)據(jù)庫(kù)test里面的表tab,假設(shè)有一個(gè)數(shù)值字段score,查詢(xún)其值大于60的數(shù)據(jù)行
$sql="select?from?test.tab?where?score60";
if?($res=mysql_query($sql)){
//數(shù)據(jù)庫(kù)查詢(xún)執(zhí)行成功
while($row=mysql_fetch_array($res)){
//循環(huán)查詢(xún)滿(mǎn)足條件的所有記錄
echo?'姓名:'.$row['name']?.?'成績(jī):'.?$row['score'].?'br';
}
//刪除查詢(xún)
mysql_free_result($res);
}else?echo?"執(zhí)行數(shù)據(jù)庫(kù)查詢(xún)失敗,語(yǔ)句:?$sqlbr原因:".mysql_error();
//關(guān)閉數(shù)據(jù)庫(kù)
mysql_close();
}else?echo?"數(shù)據(jù)庫(kù)連接失敗,原因是:".mysql_error()l