0

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

我有一个非常简单的脚本,它不起作用。我调用数据库并测试它的连接,我进行查询,存储结果并打印结果。

问题是我似乎无法在我的 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'] 回声很好。我对此感到迷茫和困惑。

4

2 回答 2

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 以了解新方法的工作原理。

于 2012-07-25T18:51:01.920 回答
0

验证您是否具有由 msyql_query 返回的有效结果集

$test = mysql_query("SELECT ... ");
if (!$test) {
    die(mysql_error());
}

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

在使用之前检查结果集。


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

于 2012-07-25T19:06:14.893 回答