MySQL选择变量不起作用

时间:2014-03-18 07:28:44

标签: php mysql select

$select = "SELECT name FROM table_name WHERE location ='".$loc."' ";
$findname = mysql_query($select) or die(mysql_error());

我一直收到这个错误!我已经尝试了一切!!!

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在#<位置='佛罗里达州''附近使用正确的语法。在第1行

$ loc由以下内容决定:

<input type="text" name="loc"> in the HTML
$loc = $_POST['loc']; in the PHP

5 个答案:

答案 0 :(得分:1)

试试这个,使用mysql_escape_stringmysql_real_escape_string mysql安全字符串函数

$select = "SELECT `name` FROM `table_name` WHERE `location` ='".mysql_escape_string($loc)."' ";
$findname = mysql_query($select) or die(mysql_error());

答案 1 :(得分:0)

$select = "SELECT name FROM table_name WHERE location ='".mysql_real_escape_string($loc)."' ";
$findname = mysql_query($select) or die(mysql_error());

答案 2 :(得分:0)

只需检查位置变量中的任何single quotes or double quotes即可。这可能是个问题。

使用str_replace(find,replace,string)替换字符串中的单引号和双引号。

示例,当您可以在$loc变量中包含双引号时。

$select = "SELECT name FROM table_name WHERE location ='Flo"rida' ";

查询将以Flo结束。

答案 3 :(得分:0)

mysql_real_escape_string

之后使用WHERE location =

答案 4 :(得分:0)

我修好了。我使用变量作为表名,并引用了一个空值。谢谢你的帮助!