Php Can';在mysql_query()中不使用变量?

Php Can';在mysql_query()中不使用变量?,php,mysql,Php,Mysql,这是基本的,因为它得到男人和女孩 我有一个非常简单的脚本,它根本不起作用。我调用数据库并测试它的连接,我执行查询,存储结果,然后打印结果 问题是我似乎无法在SQL语句中使用任何变量 代码如下: <?php $rest_name = $_GET['rest_name']; // outputs 'Starbucks' $test = mysql_query("SELECT code_id FROM table_code WHERE restaurant = '$rest_

这是基本的,因为它得到男人和女孩

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

问题是我似乎无法在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; 
?>

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

验证您是否拥有msyql_查询返回的有效结果集

$test = mysql_query("SELECT ... ");
if (!$test) {
    die(mysql_error());
}
(可能您没有连接到MySQL实例,您在错误的数据库中,您所连接的用户没有权限,等等)

在使用结果集之前,请检查它



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

尝试时会发生什么?你有错误吗?什么都没有?欢迎来到堆栈溢出!请不要对新代码使用
mysql.*
函数。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果您想了解,。另外,您在尝试查询数据库之前正在连接数据库,对吗?您在查询中直接使用了来自$\u GET的变量?如果你把代码放在一个公共网站上,你的数据库会很快被拥有。另外,mysql已经过时了,你真的应该使用mysqli或pdo,而我现在正在切换到mysqli。我发布了连接以显示我正在连接到数据库,并且在查询之前测试了连接。这是非常基本的。我应该提到,这是在Wordpress安装中,全局$wpdb不适用于此页面,也就是说,任何包含变量的查询都不适用。您可能也不想使用
mysql\u*
:)我这样做了,不会出现任何错误。我放置了一个随机值来替换变量,结果很好。
mysql\u query
函数甚至不应该讨论。它应该仅适用于遗留应用程序。