Mysql从url获取id

时间:2013-04-12 11:59:42

标签: php mysql get

您好我正在尝试从网址抓取ID并使用该ID仅显示我的数据库中的特定文章的简单任务。正在从链接抓取ID并显示在网址中 - 所以我猜我的问题是我的查询的WHERE部分。

以下是我的查询:

$dblink = mysqli_connect("localhost", "*", "*", "*") or die ("Error: Can't connect to the database..");
    $id=mysql_real_escape_string($_GET['id']);
    $query = "SELECT * FROM articles WHERE articles_id = '" . $id . "'";

    $largearticleresult = mysqli_query($dblink, $query) or die( "Request could not be made: " . mysqli_error($dblink));

以下是如何在html中回应:

<?php
while($row = mysqli_fetch_assoc($largearticleresult))
{                           
echo "<all the html markup i have made>";
}
?> 

我认为我在查询的= '" . $id . "'";部分做错了,并且一直在想对这样的事情做些什么:

 $id=mysql_real_escape_string($_GET['id']);
    $largearticleresult = mysql_query("SELECT * FROM groups where id=".$id.";");

但我现在只是坚持这个问题:-)抱歉这个简单的问题。

更新:

我尝试用数字替换'" . $id . "' - 这有效并显示文章

更新2:

现在我尝试了一个if语句,看看$ id是否已经设置好了..这似乎不是......

2 个答案:

答案 0 :(得分:0)

原来问题是在$ id上使用的mysql_real_escape_string - 删除它并且它像魅力一样工作

答案 1 :(得分:-1)

正确的三个步骤:

  1. 请勿使用 mysqli
  2. 使用预备声明
  3. 使用PDO
  4. 所以,有代码

    include 'pdo.php';
    $sql = "SELECT * FROM articles WHERE articles_id = ?";
    $stm = $pdo->prepare($sql);
    $stm->execute(array($_GET['id']));
    $article = $stm->fetch();
    ?>
    <div>
    Do all the HTML markup as <b>clean HTML</b>
    using <?=$article['title']?> where needed
    </div>
    

    如果要选择多行 - 请使用fetchAll()代替fetch(),然后使用foreach迭代生成的数组。您可以在我链接的文章中找到一个示例。