【发布时间】:2017-05-31 04:54:09
【问题描述】:
我建立了一个新的 MySQL 数据库并创建了一些 PHP 网页。每个条目的 ID 由三位数字组成,并带有前导零(例如,000、001、002)。
我的主页在 HTML 表格中将每个 ID 显示为单独的行,效果很好——它显示了每个条目。但是我的个人条目页面没有返回特定条目。例如,URL entry.php?id=001 和 entry.php?id=002 返回每个 ID 的条目。
我认为错误出现在 entry.php 代码的开头,如下所示:
$query = 'SELECT * FROM databasetablename';
if (isset($_GET['id']) && is_numeric($_GET['id']))
{
$query .= ' WHERE id = ' . (int)$_GET['id'];
}
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
... 代码继续。但我认为错误在这部分。
【问题讨论】:
-
最好使用 mysqli 或 pdo 代替 mysql。mysql 已弃用。stackoverflow.com/questions/12859942/…
-
表中
id字段的数据类型是什么? -
ID 的数据类型是:int(3) unsigned zerofill。这看起来对吗?我想我是从 Stack Overflow 那里得到的。
-
@N. Scribner 你可以使用
str_pad($id,$digits,'0',STR_PAD_LEFT) -
注意:事实证明,这个条目页面实际上显示了每个条目,而不仅仅是 000。但它可以与另一个不使用前导零的数据库一起工作。有什么想法吗?