这个脚本应该获取文本区域的内容并将其提交给mysql,但不是任何人都能看到原因吗?
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$error = '';
$like = mysql_real_escape_string($_POST['like_box']);
mysql_query("INSERT INTO likes (like) VALUES ($like)");
$id = mysql_query("SELECT id FROM likes WHERE like=$like");
header('Location:like.php?id='.$id.'');
}?>
<form method="post" action="post.php">
<textarea name="like_box" id="like_box" style="border-style: none; border-color: inherit; border-width: 0; width: 458px; height: 65px" class="style11120"></textarea>
<tr>
<td style="height: 53px">
<div class="style11116" style="width: 417px">
<input name="Submit" type="submit" value="submit" />
</form>
答案 0 :(得分:2)
有一些错误报告会告诉您需要'围绕$like
并且您需要`就像在插入内部的like is a reserved word中的列部分一样。
mysql_query("INSERT INTO likes (`like`) VALUES ('$like')") or trigger_error('Query Error: ' . mysql_error());
应该工作。
此外,你需要在`for the select:
中包含类似的内容$id = mysql_query("SELECT id FROM likes WHERE `like`=$like") or trigger_error('Query Failed: ' . mysql_error());
答案 1 :(得分:2)
您的第一个SQL查询错误。您必须在SQL中用引号括起字符串值:
mysql_query("INSERT INTO likes (`like`) VALUES ('$like')");
您的PHP部分的其余部分将无法执行任何操作。 $ id将是结果集,而不是值。你必须像这样获取行:
$result = mysql_query("SELECT id FROM likes WHERE `like`='$like'");
$row = mysql_fetch_assoc($result);
$id = $row['id'];
甚至更好,只需通过调用mysql_insert_id替换第二个SQL查询:
$id = mysql_insert_id();
还有更多改进的可能性:
exit
调用后,请不要忘记致电header('Location: ...');
,否则您可能会收到意外结果,因为脚本会继续运行。