繁体   English   中英

使用URL中的ID从MySQL DB选择数据

[英]Selecting data from MySQL DB using the ID in URL

我正在尝试从URL的ID中提取数据库中的数据。

基本上,有人单击类别链接。 然后,类别名称进入URL。 因此,当单击“操作”类别时,URL如下所示: http://localhost:8888/test/category.php?id=action

然后,我想获取数据库中与URL中的类别相同的所有内容-因此,请获取数据库中“类别”列中的所有“操作”项

这是我在下面使用的PHP代码。 我收到此错误: There was an error running the query [Unknown column 'action' in 'where clause']

PHP代码:

<?php
$db = new mysqli('localhost', 'root', 'root', 'test');

if($db->connect_errno > 0){
    die('Unable to connect to database [' . $db->connect_error . ']');
}

$id = mysql_real_escape_string($_GET['id']);
$sql = <<<SQL
    SELECT *
    FROM `games_db`
    WHERE `category` = ($id)
SQL;

if(!$result = $db->query($sql)){
    die('There was an error running the query [' . $db->error . ']');
}
while($row = $result->fetch_assoc()){
    echo '<h2>' . $row['title'] . '</h2>' . ' ' . $row['description'] . '<br /><br />';
}


echo 'Total results: ' . $result->num_rows;

// Free result set
mysqli_free_result($result);

mysqli_close($db);
?>

您正在将MySQL函数与mysql_real_escape_string()混合使用,该函数不能与其他API一起使用。

  • 使用其mysqli_等效mysqli_real_escape_string() ,这需要数据库连接。

然后在查询中引用$id变量,不要使用方括号。

$id = mysqli_real_escape_string($db, $_GET['id']);
$sql = <<<SQL
    SELECT *
    FROM `games_db`
    WHERE `category` = '$id'
SQL;
  • 旁注: "$id"也将起作用。

参照(一个或多个):

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM