gpt4 book ai didi

php 和 mysql,最佳实践

转载 作者:可可西里 更新时间:2023-11-01 06:57:09 25 4
gpt4 key购买 nike

我今天开始使用 php 和 mysql。基本上,我所拥有的是一个空白页面,其中包含我通过在数据库中查找 id 来填充的部分。所以在我的主页上有一个如下所示的 url:

<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.'" />';
}

几个问题,

  1. 这是最好的方法吗?
  2. 每次访问 display.php 时,我都会重新打开数据库连接,对吗?那可不好……
  3. 我选择将文件名放在数据库中,而不是整个路径名,甚至是实际文件本身,我想,如果我更改文件名,我可以进入数据库并更新它我要更改的文件。如果我更改路径,我只需在 html 中更改一次即可。这是最好的主意吗?

谢谢!

最佳答案

1) 不,尽管这是最简单的开始方式。在您对基础知识感到满意之后,您应该花一些时间考虑应用程序结构的不同方法。最重要的规则是分离关注点。不要将数据库代码与业务逻辑代码和表示代码混在一起。但正如我所说,这不是你在第一天就应该担心的事情。现在只学习基础知识。

2) 实际上没有其他办法。对于 Web 应用程序,来自浏览器的每个请求就像一个单独的应用程序运行。有可能使用所谓的持久数据库连接,但就像前一点一样,这是您第一天不应该处理的事情,因为它们需要对您的 Web 服务器进行特定配置。暂时只使用普通连接。

3) 这是一个非常明智的想法。您还可以将图像路径定义为一个 PHP 常量,这样在需要更改的情况下,您只需更改这个常量。

4) sAc 在他的回答中说的非常重要。阅读有关 SQL 注入(inject)以及如何防止它们的信息。

关于php 和 mysql,最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3364969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com