Where子句php不起作用

时间:2012-07-20 15:04:03

标签: php mysql

这是我在第一名的第一个PHP。如果我有什么问题,请帮我代码。因为我刚开始学习。我尝试了很多教程,但我无法理解我做错了什么。

 <?php

include "db_config.php";

$query = mysql_query("SELECT * FROM places WHERE place_id ='".mysql_real_escape_string($_REQUEST[place_id])."'");

while($e=mysql_fetch_assoc($query))
        $output[]=$e;

echo $row['name'];

mysql_close();
?>

这是对的吗? 我不知道它是如何工作的。

$stmt = $db->prepare("SELECT * FROM table WHERE $_REQUEST[place_id]");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

2 个答案:

答案 0 :(得分:4)

你在这一行上有一个错字:

 while($e=mysql_fetch_assoc($q))

$q需要$query。我在代码中看不到变量$q。这是php代码中的一个常见问题,就好像你引入了一个像$q这样的名字,php足够“好”,可以为你创建变量并将其初始化为null,而不是明智地给你一个错误。 / p>

答案 1 :(得分:2)

你需要使用mysql_query的结果来保护mysql_fetch_assoc(),这里是$ query。

<?php

include "db_config.php";

$query = mysql_query("SELECT * FROM places WHERE place_id='".mysql_real_escape_string($_POST[place_id])."'");

while($e=mysql_fetch_assoc($query))
    $output[]=$e;

print(json_encode($output));

mysql_close();
?>

此外,你需要使用一些pdo或mysqli,因为不推荐使用mysql_:http://php.net/manual/en/function.mysql-query.php