我希望有人可以帮助我。我正在尝试使用带有textarea的PHP表单将数据更新到MySql数据库中。 只要我使用在页面开头定义的随机字符串更新数据库,它就可以正常工作。但是当我尝试使用表单中收到的$ _POST ['text']更新数据库时,数据库中的值不会更新。
我真的不知道问题是什么,所以我希望有人可以帮助我完成这项工作。如果我的问题不够明确,请告诉我。
test.php的
<html>
<head>
<script type="text/javascript" src="./js/tinymce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
selector: "textarea",
plugins : 'advlist autolink autoresize autosave link image lists charmap media paste preview spellchecker',
image_advtab: true
});
</script>
</head>
<body>
<?php
$con=mysqli_connect("example.com","test","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT content FROM page_content WHERE page = 'Zangpedagoog'");
while($row = mysqli_fetch_array($result))
{
$text=$row['content'] ;
}
?>
<form method="post" action="./send.php">
<textarea name="text" width="100%">
<?php echo $text ?>
</textarea>
<input id="submit" name="submit" type="submit" value="Send"></form></body></html>
send.php
<?php
$update = $_POST['text'];
echo $update;
$random = '123456';
echo $random;
$con=mysql_connect("example.com","test","abc123","my_db");
// Check connection
if (!$con)
{
echo "Failed to connect to MySQL: " . mysql_connect_error();
}
mysql_query("UPDATE page_content SET content=$update WHERE page='Zangpedagoog'",$con);
mysql_close($con);
?>
答案 0 :(得分:0)
我想它就在这里:
mysql_query("UPDATE page_content SET content=$update WHERE page='Zangpedagoog'",$con);
您将$ update直接放入字符串中。 这是非常危险和愚蠢的,但这不是你想要的。 我想,真正导致错误的是缺少'更新'。 现在值get直接放入查询中,而不是字符串,我认为你想要的。 请记住,这对SQL注入非常开放! 固定代码:
mysql_query("UPDATE page_content SET content='$update' WHERE page='Zangpedagoog'",$con);