这是我收到的错误消息:
Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/content/50/8492150/html/colejoh/web/ai/form.php on line 10
对于我的HTML表单,我使用的是此代码:
<html>
<head>
</head>
<body>
<form action="form.php" method="post">
Search: <input type="text" name="term" /><br />
<input type="submit" name="submit" value="Submit" />
</form>
<body OnLoad="document.myform.query.focus();">
</body>
</html>
我的form.php代码:
<body>
<?php
$con = mysql_connect ("xxx.xxx.xxx.xxx", "user", "password");
mysql_select_db ("user", $con);
if (!$con)
{
die ("Could not connect: " . mysql_error());
}
$sql = mysql_query("SELECT * FROM ai WHERE key LIKE $_POST["term"];") or die
(mysql_error());
while ($row = mysql_fetch_array($sql)){
echo 'ID: ' .$row['id'];
echo '<br /> Key: ' .$row['key'];
echo '<br /> Page: '.$row['page'];
}
mysql_close($con)
?>
</body>
我认为错误发生在LIKE $_POST["term"];")
的sql语句中的form.php中。我要做的是使代码成为我在表单页面上提交的内容。
答案 0 :(得分:5)
此行导致问题:
$sql = mysql_query("SELECT * FROM ai WHERE key LIKE $_POST["term"];") or die
将其更改为:
$sql = mysql_query("SELECT * FROM ai WHERE key LIKE " . mysql_real_escape_string($_POST["term"]) . ";") or die
此外,您应该避免使用不推荐使用的mysql_
函数。相反,您应该使用mysqli_
或PDO。此代码也容易受到sql注入。
答案 1 :(得分:3)
您没有正确编码双引号。将$ sql赋值更改为
$sql = mysql_query("SELECT * FROM ai WHERE key LIKE '".mysql_real_escapse_string($_POST["term"])."'") or die(mysql_error());
这也可以防止sql注入。
答案 2 :(得分:1)
试试这个
$sql = mysql_query("SELECT * FROM ai
WHERE key LIKE '".mysql_real_escape_string($_POST['term'])."'")
or die(mysql_error());
答案 3 :(得分:0)
首先,你不应该发布你的mysql用户名和密码。
其次,应引用搜索词。
答案 4 :(得分:0)
在php中,你必须非常小心处理字符串变量。要连接多个字符串变量,您应该这样做:
"SELECT * FROM ai WHERE key LIKE" . $_POST["term"] . ";"
为了让您的生活更轻松,您应该经常创建“帮助”变量,如下所示:
$my_variable="SELECT * FROM ai WHERE key LIKE" . $_POST["term"] . ";"
然后将其添加到您的脚本中,如下所示:
$sql = mysql_query($my_variable) or die(mysql_error());
答案 5 :(得分:0)
$sql = mysql_query("SELECT * FROM ai WHERE key LIKE 'mysql_real_escapse_string($_POST[term])'");
更新以上查询。
术语
不应有任何双引号答案 6 :(得分:-1)
试试这个
<body>
<?php
$con = mysql_connect ("xxx.xxx.xxx.xxx", "user", "password");
mysql_select_db ("user", $con);
if (!$con)
{
die ("Could not connect: " . mysql_error());
}
$sql = mysql_query("SELECT * FROM ai WHERE key LIKE ".$_POST["term"].";") or die
(mysql_error());
while ($row = mysql_fetch_array($sql)){
echo 'ID: ' .$row['id'];
echo '<br /> Key: ' .$row['key'];
echo '<br /> Page: '.$row['page'];
}
mysql_close($con)
?>
</body>
答案 7 :(得分:-1)
用这个替换你的行错误:
$sql = mysql_query("SELECT * FROM ai WHERE key LIKE $_POST[\"term\"];") or die
(mysql_error());