不能在mysql_query()中使用变量?

时间:2012-07-25 18:49:36

标签: php mysql

这与男人和女孩一样基本。

我有一个非常简单的脚本,但是无法正常工作。我调用数据库并测试它的连接,我进行查询,存储结果,然后打印结果。

问题是我似乎无法在我的SQL语句中使用任何变量。

以下是代码:

<?php

    $rest_name = $_GET['rest_name']; // outputs 'Starbucks'

    $test = mysql_query("SELECT code_id FROM table_code WHERE restaurant = '$rest_name'");

    /* I've also tried these as well
    $test = mysql_query("SELECT code_id FROM table_code WHERE restaurant = '".$rest_name."'");
    */

    $mark = mysql_result($test,0);

    echo $_GET['rest_name'].$mark; 
?>

我回应了查询,看起来很好,在数据库中运行正常。 $ rest_name变量很好。 $ _GET ['rest_name']回声很好。我对此感到迷茫和困惑。

2 个答案:

答案 0 :(得分:1)

1 - 你可以从这开始。

$test = mysql_query("S....") or die(mysql_error());

这样你就会看到你得到了什么错误。

2 - 您可能希望避免在查询中使用用户提供的变量

$rest_name = mysql_real_escape_string($_GET['rest_name']); 

否则用户可以插入自己的sql命令;

3 - 不推荐使用mysql_xxx函数,您可能希望研究pdo或mysqli以了解新方法的工作原理。

答案 1 :(得分:0)

验证您是否拥有msyql_query

返回的有效结果集
$test = mysql_query("SELECT ... ");
if (!$test) {
    die(mysql_error());
}

(你可能没有连接到MySQL实例,你在错误的数据库中,你连接的用户没有权限等等。)

在使用之前检查结果集。


注意:不要使用mysql_函数,而是使用mysqli或PDO。