网页中为什么要用到数据库? World Wide Web (WWW) 不仅仅是一个提供信息的地方。如果你有什么东西,作一个网站,同样可以和全世界的人一起分享。但是,这并不是一件很容易的事。当网站越做越大时,你可能会遇到这样的问题: 网站包含了太多的东西,使得访
网页中为什么要用到数据库?
html>
body>
?php
print "Hello, world.";
?>
body>
html>
?php
print "";
print "";
print "Hello, world.";
print "";
print "";
?>
?php
print "Hello, world.";
?>
print $myarray;
$implodedarray = implode ($myarray, ", ");
print $implodedarray;
function printelement ($element)
{
print ("$element");
}
array_walk($myarray, "printelement");
html>
body>
form action=submitform.php3 method=GET>
姓 : input type=text name=first_name size=25 maxlength=25>
名 : input type=text name=last_name size=25 maxlength=25>
p>
input type=submit>
/form>
/body>
/html>
html>
body>
?php
mysql_connect (localhost, username, password);
mysql_select_db (dbname);
mysql_query ("INSERT INTO tablename (first_name, last_name)
VALUES ('$first_name', '$last_name')
");
print ($first_name);
print (" ");
print ($last_name);
print ("");
print (" 感谢填写注册表 ");
?>
/body>
/html>
… /submitform.php3?first_name=Fred&last_name=Flintstone
mysql_connect (localhost, username, password);
mysql_select_db (dbname);
mysql_query ("INSERT INTO tablename (first_name, last_name)
VALUES ('$first_name', '$last_name')");
INSERT INTO tablename (first_name, last_name) VALUES ('$first_name', '$last_name');
html>
body>
form action=searchform.php3 method=GET>
请输入您的查询内容 :
p>
姓: input type=text name=first_name size=25 maxlength=25>
p>
名 : input type=text name=last_name size=25 maxlength=25>
p>
input type=submit>
/form>
/body>
/html>
html>
body>
?php
mysql_connect (localhost, username, password);
mysql_select_db (dbname);
if ($first_name == "")
{$first_name = '%';}
if ($last_name == "")
{$last_name = '%';}
$result = mysql_query ("SELECT * FROM tablename
WHERE first_name LIKE '$first_name%'
AND last_name LIKE '$last_name%'
");
if ($row = mysql_fetch_array($result)) {
do {
print $row["first_name"];
print (" ");
print $row["last_name"];
print ("");
} while($row = mysql_fetch_array($result));
} else {print " 对不起,再我们的数据库中,没有找到符合的纪录。 ";}
?>
/body>
/html>
if ($first_name == "")
{$first_name = '%';}
if ($last_name == "")
{$last_name = '%';}
$result = mysql_query ("SELECT * FROM tablename
WHERE first_name LIKE '$first_name%'
AND last_name LIKE '$last_name%'"
");
if ($row = mysql_fetch_array($result)) {
do {
print $row["first_name"];
print (" ");
print $row["last_name"];
print ("");
} while($row = mysql_fetch_array($result));
} else {print " 对不起,再我们的数据库中,没有找到符合的纪录。 ";}
do {
print $row["first_name"];
print (" ");
print $row["last_name"];
print ("");
} while($row = mysql_fetch_array($result));
print $row["first_name"];
print (" ");
print $row["last_name"];
print ("");
print $row[0];
print (" ");
print $row[1];
print ("");
我们还可以用 echo 函数来把这四条语句写的紧凑一些:
echo $row[0], " ", $row[1], "";
当没有任何匹配的纪录被找到时,在 $row 中就不会有任何内容,这时就会调用 if 语句的 else 子句了:
else {print " 对不起,再我们的数据库中,没有找到符合的纪录。 ";}检查查询是否正常工作
你的那些 SELECT , DELETE 或者其它的查询是否能够正常工作呢?这是必须要搞清楚的,并且,千万不要轻易的就下结论。
检查一个 INSERT 查询相对的简单一些:
$result = mysql_query ("INSERT INTO tablename (first_name, last_name)
VALUES ('$first_name', '$last_name')
");
if(!$result)
{
echo "INSERT 查询失败 : ", mysql_error();
exit;
}
但是这个检查的方法对于 SELECT 查询是行不通的,这时,应该这样作:
$selectresult = mysql_query ("SELECT * FROM tablename
WHERE first_name = '$first_name'
AND last_name = '$last_name'
");
if (mysql_num_rows($selectresult) == 1)
{
print "SELECT 查询成功。 ";
}
elseif (mysql_num_rows($selectresult) == 0)
{
print "SELECT 查询失败。 ";
exit;
}
而对于 DELETE 查询,就应该是这样了:
$deleteresult = mysql_query ("DELETE FROM tablename
WHERE first_name = '$first_name'
AND last_name = '$last_name'
");
if (mysql_affected_rows($deleteresult) == 1)
{
print "DELETE 查询成功 ";
}
elseif (mysql_affected_rows($deleteresult) != 1)
{
print "DELETE 查询失败 ";
exit;
}
清理空格
trim 函数将清除数据头尾的空格,它的语法是:
trim ($first_name);
必填字段的处理
在你数据库中,有些字段时必须填写的。这样对应于 HTML 表单的相应的字段也不允许空出来不填。当然,这个检验处理的过程可以用客户端的 JavaScript 脚本来处理,但既然我们讲的是 PHP ,就还使用 PHP 来处理吧。下面的代码检查用户的姓是否输入:
if (ereg(".", $first_name) == 1)
{
print (" 姓 : ");
print ("$first_name");
$verify = "OK";
}
else
{
print (" 错误: 您的尊姓没有被填写 ");
$verify = "bad";
}
ereg 模式识别函数,用来判定指定的字符串是否包含有某一个子串。它的第一个参数就是判定是否包含的子串,第二个参数指定要搜索的字符串,通常是一个变量。 Ereg 函数返回“ 0 ”( false ),表示匹配失败,或者 “ 1 ”( true ),表示匹配成功。在这儿逗点“ . ”是模式式别的统配符,代表任何的字符。这样表达式 ereg(".", $first_name) == 1 就意味着在变量 $first_name 中包含有至少一个字符了。
检查 e-mail 地址
用下面的这些字符常量来作为 ereg 函数的第一个参数,就可以轻松的进行 e-mail 地址检查了 :
"@" :必须包含 @
"^@" :不能用 @ 打头
"@.*……" : 在 @ 和 . 中 间必须要有字符存在。
"……*" :在 . 之后至少要有两个字符
" " :不允许有空格
比照这这几个参数示例,你也可以设计一些其它的输入验证。
检查用户名是否唯一
这个动作似乎也是必须要作的了:
mysql_connect (localhost, username, password);
mysql_select_db (dbname);
$result = mysql_query ("SELECT * FROM tablename
WHERE USER_ID = '$USER_ID'
");
if ($row = mysql_fetch_array($result))
{
print (" 错误: 用户名 ");
print ("$USER_ID ");
print (" 已经被占用,请选者其它的再试试。 ");
print ("");
$verify = "bad";
}
else
{
print (" 用户 ID: ");
print ("$USER_ID ");
}
代码的思想很简单,读到这儿,相信它已经难不住你了。