我今天开始使用PHP和mysql.基本上,我所拥有的是一个空页面,其中包含我在数据库中查找id时填写的内容.所以在我的主页上我有一个看起来像这样的网址:
PHP?id=id1">
然后在我的display.PHP中我有这个:
PHP
include '../includes/header.PHP';
$id = $_GET['id'];
$MysqLi = new MysqLi('localhost','username','password','dbname');
if($result = $MysqLi->query("SELECT * FROM portfolio WHERE id='".$id."'"))
{
while($row = $result->fetch_object())
{
$head = $row->head;
$img1 = $row->img1;
$img2 = $row->img2;
$img_url = $row->imgurl;
$img_thumb = $row->imgthumb;
$vid = $row->vid;
$swf = $row->swf;
$url = $row->url;
$url_text = $row->urltext;
$text = $row->text;
}
}
else echo $MysqLi->error;
?>
这是一个稀疏表,因为并非所有这些字段都有信息(许多字段可能为空).基本上它们包含文件名,然后在html中我有如下代码:
if(isset($img1))
{
echo '
几个问题,
>这是最好的方法吗?
>每次我访问display.PHP时,我都在重新打开数据库连接吗?这不可能是好的……
>我选择将文件的名称放在数据库中,而不是整个路径名,甚至是实际的文件本身,如果我更改了文件的名称,我可以进入数据库并为文件更新它我想改变.如果我更改路径,我可以在html中更改一次.这是最好的主意吗?
谢谢!
最佳答案
1)不,虽然这是最简单的开始方式.在您对基础知识感到满意之后,您应该花一些时间考虑应用程序结构的不同方法.最重要的规则是分开关注点.不要将数据库代码与业务逻辑代码与表示代码混合在一起.但就像我说的那样,这不是你第一天应该担心的事情.现在只学习基础知识.
2)实际上没有其他办法.对于Web应用程序,来自浏览器的每个请求都类似于单独的应用程序运行.有可能使用所谓的持久性数据库连接,但就像之前的那样,这是您第一天不应该处理的事情,因为它们需要特定的Web服务器配置.暂时只使用普通连接.
3)这是非常明智的想法.您还可以将图像路径定义为PHP常量,以便在需要更改时,您只需更改此常量.
4)sAc在他的回答中说的非常重要.阅读有关sql注入以及如何防止它们的信息.