【发布时间】:2010-07-29 16:45:39
【问题描述】:
我今天开始使用 php 和 mysql。基本上,我所拥有的是一个空白页面,其中包含我通过在数据库中查找 id 来填写的片段。所以在我的主页上,我有一个如下所示的网址:
<a href="content/display.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 '<img src="images/'.$img1.'" />';
}
几个问题,
- 这是最好的方法吗?
- 每次访问 display.php 时,我都会重新打开数据库连接,对吗?这可不好...
- 我选择将文件名放在数据库中,而不是整个路径名,甚至是实际文件本身,我想如果我更改文件名,我可以进入数据库并更新它我要更改的文件。如果我更改路径,我可以在 html 中更改一次。这是最好的主意吗?
谢谢!
【问题讨论】:
-
(重新)打开数据库连接是常见的做法,它应该没什么大不了的。我确实想知道为什么您要将对象的每个属性都放在另一个变量中?
-
我想所以我不必将整个网站包装在那个 while 循环中......我想我可以做到这一点