为什么这个PHP脚本不向mysql提交表单数据?
这个脚本应该获取文本区域的内容并将其提交给mysql,但是没有人知道为什么吗为什么这个PHP脚本不向mysql提交表单数据?,php,html,xhtml,Php,Html,Xhtml,这个脚本应该获取文本区域的内容并将其提交给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 lik
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>
if($\u服务器[“请求\u方法”]=“发布”)
{
$error='';
$like=mysql\u real\u escape\u字符串($\u POST['like\u box']);
mysql_查询(“插入like(like)值($like)”;
$id=mysql_查询(“从like中选择id,其中like=$like”);
标题('Location:like.php?id='.$id.');
}?>
如果有一些错误报告,则会告诉您需要在$like
中使用“around”,并且您需要在columns部分中使用“around like”,因为,在insert中
mysql_query("INSERT INTO likes (`like`) VALUES ('$like')") or trigger_error('Query Error: ' . mysql_error());
应该有用
此外,您还需要在`中附上类似的内容,以便选择:
$id = mysql_query("SELECT id FROM likes WHERE `like`=$like") or trigger_error('Query Failed: ' . mysql_error());
有一些错误报告会告诉您,您需要在
$like
中使用'around',并且在columns部分中需要'around like',因为,在insert中
mysql_query("INSERT INTO likes (`like`) VALUES ('$like')") or trigger_error('Query Error: ' . mysql_error());
应该有用
此外,您还需要在`中附上类似的内容,以便选择:
$id = mysql_query("SELECT id FROM likes WHERE `like`=$like") or trigger_error('Query Failed: ' . mysql_error());
您的第一个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'];
或者更好,只需将第二个SQL查询替换为调用:
还有更多改进的可能性:
- 完成
标题('Location:…')后,不要忘记调用
代码>调用,否则您可能会得到意外的结果,因为脚本将继续运行exit
- 添加一些插入的错误处理。至少用if语句检查它是否成功
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'];
或者更好,只需将第二个SQL查询替换为调用:
还有更多改进的可能性:
- 完成
标题('Location:…')后,不要忘记调用
代码>调用,否则您可能会得到意外的结果,因为脚本将继续运行exit
- 添加一些插入的错误处理。至少用if语句检查它是否成功
echo$\u post['like\u box'];模具()代码>在那里工作吗?在脚本中,您是否连接到数据库并选择了它?您是否尝试过调试,在post.php文件中,写入echo$\u post['like_box'];模具()代码>在那里工作吗?在脚本中,您是否连接到数据库并选择它?