Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库中获取某人的详细信息?_Php_Mysql - Fatal编程技术网

Php 从数据库中获取某人的详细信息?

Php 从数据库中获取某人的详细信息?,php,mysql,Php,Mysql,我正在尝试获取一个人使用其id的详细信息,我有以下代码,它显示了一个错误 $id = isset($_GET['id']) ? isset($_GET['id']) : ""; $sql = "SELECT * FROM `ArtListing` where `id` = $id"; $result = $conn->query($sql); if (!$result) { die("Query failed " . $

我正在尝试获取一个人使用其id的详细信息,我有以下代码,它显示了一个错误

$id = isset($_GET['id']) ? isset($_GET['id']) : "";
$sql = "SELECT * FROM `ArtListing` where `id` = $id";
$result = $conn->query($sql);

if (!$result) {
    die("Query failed " . $conn->error);
}

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo  $row["id"] . "." . $row["name"] ;
    }
如果我使用的id是一些随机数,它会返回详细信息。它向我显示的错误如下

查询失败您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第1行“”附近要使用的正确语法


不能简单地将变量放入字符串中 你需要正确地将其粘合成刺的一部分,如下所示

$sql = "SELECT * FROM `ArtListing` where `id` = '".$id."'";
SELECT * FROM `ArtListing` where `id` = yourid; <-- incorrect
您可以在这里测试此代码

看看双引号和单引号的组合

您的SQL查询字符串创建如下

$sql = "SELECT * FROM `ArtListing` where `id` = '".$id."'";
SELECT * FROM `ArtListing` where `id` = yourid; <-- incorrect

从'ArtListing'中选择*其中'id`=yourid 您抓取的
id
似乎未定义

您应该将
$id
变量指定为:

$id = isset($_GET['id']) ? $_GET['id'] : "0";

为什么要将该代码放在backticks(``)中?如果该查询引发错误,那么可能是在向它提供一个非整数(假设
id
列类型为
INT
),其中可能包含一个或多个空格。因此,
$id
可能不包含您期望的值。出于安全和其他原因,您应该使用准备好的语句,而不是变量扩展。请参阅。请注意,您构建查询的方式是不安全的。你对我敞开心扉。你应该改用。这能回答你的问题吗?这是完全错误的,因为在双引号字符串中使用变量将输出它们的值。这不是问题所在。如果预期为空字符串,则空字符串是完全正确的值。因为我们看不到数据库OP的值,所以我们不能告诉他们使用0作为值