这与男人和女孩一样基本。
我有一个非常简单的脚本,但是无法正常工作。我调用数据库并测试它的连接,我进行查询,存储结果,然后打印结果。
问题是我似乎无法在我的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']回声很好。我对此感到迷茫和困惑。
答案 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。