我建议一下吧,文本数据库的例子本来太多,但是为了逻辑简化,最好通过专门接口实现文件与数据的转换,可以采用我下面的模板编写:
php
//文件最前面定义两个全局变量,数据库文件名和用户数组
$pwd_db_file='db.txt';
$UserPassword=array();
//下面的pwd_db_read函数,把文件内容读入到全局数组中
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函数保存数组内容到文件中
function pwd_db_write(){
fp=fopen($pwd_db_file, 'w');
foreach ($UserPassword as $usr=$pwd)
fputs($fp,"$usr|$pwd\n");
//有了上面的全局变量和函数,要写什么功能都简单
//下面假释本脚本调用的时候通过reg.php?job=adduser=...pass=...
//的格式进行调用,job为add表示添加用户,del表示删除,modi表示修改
//另外的user和pass表示用户名或者密码,job不是以上内容表示登录
//主程序一开始就打开数据库
pwd_db_read();
//下面判断功能
if ($jon=='add'){
if (array_key_exists($user,$UserPassword)) echo "用户 $user 已经存在!"
else $UserPassword[$user]=$pass;//就一句话,简单吧
}elseif (job=='del'){
unset($UserPassword[$user]);//你自己考虑编写是否确认删除的内容
}elseif ($job=='modi'){
if (array_key_exists($user,$UserPassword)) $UserPassword[$user]=$pass;//和添加是不是有点类似
else echo "用户 $user 不存在!"
}else{
if ($UserPassword[$user]==$pass){
echo '密码正确.';
//此时此刻呢可能要做许多事情
}else echo '密码错误!';
//程序最后保存数据库修改
pwd_db_write();
看得懂吗,没有上机调试,语法问题可能难免,如果发现不明白的问题请补充.
大概的基本流程如下:
连接数据库,再加一个判断.
选择数据库
读取表
输出表中数据
下面是代码:
if (!$con)
{
die("数据库服务器连接失败");
/*?这就是一个逻辑非判断,如果错误就输出括号里的字符串 */?
@mysql_select_db("a",?$con);?
/*?选择mysql服务器里的一个数据库,假设你的数据库名为?a*/
$sql?=?"SELECT?*?FROM qq";?
/* 定义变量sql,?"SELECT?*?FROM?qq" 是SQL指令,表示选取表qq中的数据?*/
$result = mysql_query($sql); //执行SQL语句,获得结果集
/*下面就是选择性的输出打印了,由于不清楚你的具体情况给你个表格打印吧*/
//打印表格?
echo "table border=1";?
while( $row = mysql_fetch_array($result) )
/*逐行获取结果集中的记录,得到数组row?*/
{ ?
/*数组row的下标对应着数据库中的字段值?*/
$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是表头,就定义这个表头字段,然后输出.
/*?定义变量dbh?,?mysql_connect()函数的意思是连接mysql数据库,?"@"的意思是屏蔽报错?*/?
if(!$dbh){die("error");}?
/*?die()函数的意思是将括号里的字串送到浏览器并中断PHP程式?(Script).括号里的参数为欲送出的字串.?*/?
@mysql_select_db("ok",?$dbh);?
/*?选择mysql服务器里的一个数据库,这里选的数据库名为?ok?*/?
$q?=?"SELECT?*?FROM?abc";?
/*?定义变量q,?"SELECT?*?FROM?abc"是一个SQL语句,意思是读取表abc中的数据?*/?
br?/?
!--=========?方法一?=========--?
$rs?=?mysql_query($q,?$dbh);?
/*?定义变量?rs?,函数mysql_query()的意思是:送出?query?字串供?MySQL?做相关的处理或者执行.由于php是从右往左执行的,所以,rs的值是服务器运行mysql_query()函数后返回的值?*/?
if(!$rs){die("Valid?result!");}?
echo?"table";?
echo?"trtdID/tdtdName/td/tr";?
while($row?=?mysql_fetch_row($rs))?echo?"trtd$row[0]/tdtd$row[1]/td/tr";?
/*?定义量变(数组)row,并利用while循环,把数据一一写出来.?
函数mysql_fetch_row()的意思是:将查询结果$rs单列拆到阵列变数中.?
$row[0]?和?$row[1]?的位置可以换*/?
echo?"/table";?
!--=========?方法二?=========--?
while($row?=?mysql_fetch_object($rs))?echo?"$row-id?$row-name?br?/";?
/*?id和name可以换位置?*/?
!--=========?方法三?=========--?
while($row?=?mysql_fetch_array($rs))?echo?"$row[id]?$row[name]?br?/";?
!--=========?方法三最快?=========--?
@mysql_close($dbh);?
/*?关闭到mysql数据库的连接?*/?
//建立数据库链接,
mysql_connect("localhost",?"mysql_user",?"mysql_password")?or
die("Could?not?connect:?"?.?mysql_error());
//选择数据库
mysql_select_db("mydb");
//查询sql语句
$result?=?mysql_query("SELECT?id,?name?FROM?mytable");
//输出查询结果
while?($row?=?mysql_fetch_array($result))?{
echo?$row['id']?,"br?/",?$row['name'];?
//释放结果内存
mysql_free_result($result);
数据库的读取能一次查询完成的尽量不要分成多次查询
不知道你用的是什么框架,如果有where_in方法的话可以用它来解决,先要构造出order_sn值的数组
没有的话就自己构造'or'条件字符串,然后用where一次查询完成
首先,检查你这几个参数是否确实设置正确:
$dbhost
=
'localhost';
//数据库
主机地址
$dbuser
'admin';
//mysql
用户名
$dbpass
密码
$dbname
//mysql库名
另外,mysql_close();
这句已经把数据库连接关闭了所以呢后面对数据库的操作都不能成功.