Php 帮助按id显示MySQL数据库中的内容

Php 帮助按id显示MySQL数据库中的内容,php,mysql,Php,Mysql,我正在尝试使用PHP和MySQL-nube central整合我的第一个动态站点 我在建立数据库和插入数据方面做得很好。现在我想在php/html模板中显示每一行的内容 我创建了一个php文件,其中列出了每一行,并带有指向story.php文件的链接: <a href="story.php?id=<? echo $row->id; ?>"><? echo $row->Name; ?></a> 例如,如果我硬编码其中的id='1',

我正在尝试使用PHP和MySQL-nube central整合我的第一个动态站点

我在建立数据库和插入数据方面做得很好。现在我想在php/html模板中显示每一行的内容

我创建了一个php文件,其中列出了每一行,并带有指向story.php文件的链接:

<a href="story.php?id=<? echo $row->id; 
?>"><?

echo $row->Name; ?></a>
例如,如果我硬编码其中的id='1',它会很好地显示该行,但使用'$id'不会返回任何结果

如何让它根据链接ie中的id返回行中的数据:

http://localhost:8888/test/tiebel/story.php?id=1

我猜ID是数字的,所以去掉引号

$query = "SELECT Name, Address FROM garden WHERE id =$id";
查询中出错:从id=的Tiebel_Gardens_Homes中选择名称、地址

对于这一个,你需要

从get/POST参数获取ID 在未提供ID的情况下优雅地处理 所以我会这么做

$id = $_GET['id'];
if (!is_numeric($id)) { $id = 0; }
$query = "SELECT Name, Address FROM garden WHERE id =$id";

我猜ID是数字的,所以去掉引号

$query = "SELECT Name, Address FROM garden WHERE id =$id";
查询中出错:从id=的Tiebel_Gardens_Homes中选择名称、地址

对于这一个,你需要

从get/POST参数获取ID 在未提供ID的情况下优雅地处理 所以我会这么做

$id = $_GET['id'];
if (!is_numeric($id)) { $id = 0; }
$query = "SELECT Name, Address FROM garden WHERE id =$id";

你可能想利用这个机会,但这不是一个好的举动。此外,如果这是适当的,我可以垃圾数据库与:http://localhost:8888/test/tiebel/story.php?id=1; 把桌子放在花园里

值'id'可用,如$u GET['id'],但我将进一步执行以下操作:

$id = isset($_GET['id']) ? int($_GET['id']) : 0;
if ($id == 0) {
   echo "problem with id";
   exit;
}
这确保变量是 一开始就设置了一个 b是一个数字

如果任何不是数字或至少不是以数字开头的内容被附加到URL,它将被转换为整数,失败并显示为0,然后进行检查


正如另一个答案所说,如果它是一个简单的数字,你不需要在它周围加引号,但这也需要一些安全性,否则它可能是“…..?id=id”,最终作为选择名称,地址来自花园,id=id选择所有行。

你可能试图利用它,这不是一个好的举动。此外,如果这是适当的,我可以垃圾数据库与:http://localhost:8888/test/tiebel/story.php?id=1; 把桌子放在花园里

值'id'可用,如$u GET['id'],但我将进一步执行以下操作:

$id = isset($_GET['id']) ? int($_GET['id']) : 0;
if ($id == 0) {
   echo "problem with id";
   exit;
}
这确保变量是 一开始就设置了一个 b是一个数字

如果任何不是数字或至少不是以数字开头的内容被附加到URL,它将被转换为整数,失败并显示为0,然后进行检查


正如另一个答案所说,如果它是一个简单的数字,你不需要在它周围加引号,但这也需要一些安全性,否则它可能是“…..?id=id”,最终作为选择名称,地址来自花园,id=id选择所有行。

如果我正确理解你的问题:

当URL中的id=时,您正在设置一个$\u GET值。尝试:

$id = $_GET['id'];

在您询问之前。

如果我正确理解您的问题:

当URL中的id=时,您正在设置一个$\u GET值。尝试:

$id = $_GET['id'];

在查询之前。

让我们对id值进行分解。如果id的数据类型是数据库中的整数,则不需要在变量周围加单引号。感谢1000000@cyberkiwi-我这样做了,我在查询中遇到错误:从Tiebel_Gardens_Homes选择名称、地址,其中id=。您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获得第1行附近要使用的正确语法:让我们对id值进行分解。如果id的数据类型是数据库中的整数,则不需要在变量周围加单引号。感谢1000000@cyberkiwi-我这样做了,我在查询中遇到错误:从Tiebel_Gardens_Homes选择名称、地址,其中id=。您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解第1行附近要使用的正确语法:谢谢cyberkiwi-我将其更改为Hanks cyberkiwi-我将其更改为Hanks@Trevor-这很好!!谢谢@Alister-我试着像你指出的那样破坏数据库,但失败了,所以我想我没事。这是一个让我进入PHP/MySQL的项目——还有很多安全方面的东西需要学习,但感谢您指出这一点。JamesThanks@Trevor-太棒了!!谢谢@Alister-我试着像你指出的那样破坏数据库,但失败了,所以我想我没事。这是一个让我进入PHP/MySQL的项目——还有很多安全方面的东西需要学习,但感谢您指出这一点。詹姆斯