我在我的站点中使用了一个php部件,在这里我有一个文本区域,它可以从数据库中获取文本。用户可以编辑这个文本,完成后按下保存按钮,使用UPDATE,我将更改数据库中的文本。这是我的代码:
<?php
$con=mysqli_connect("localhost","userdb","codedb","projectdb");
mysqli_set_charset($con, 'utf8');
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$myQueryfac="SELECT text FROM main WHERE id=1";
$result = mysqli_query($con,$myQueryfac);
while($row = mysqli_fetch_array($result)) {
$t1=$row['text'];
}
$form="<form action='adminindex.php' method='post'>
<textarea name='area1' maxlength='1500' cols='50' rows='10'>$t1</textarea>
<input type='submit' name='enter' value='Save'>
</form>";
if($_POST['enter']) {
$t1=$_POST['area1'];
mysqli_query($con,"UPDATE main SET text='$t1' WHERE id='1'");
}
echo $form;
mysqli_close($con);
?>我的问题是在更新查询中,它似乎忽略了$t1,数据库中没有任何变化。但是如果我把一些随机的东西放进去,“随机文本”,成功地改变它。
发布于 2014-05-28 14:10:07
你就是这样做的:
test.php
// DB Connect
$con=mysqli_connect("localhost","userdb","codedb","projectdb");
mysqli_set_charset($con, 'utf8');
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Handle POST
if (count($_POST))
{
// Save In DB
mysqli_query($con, sprintf("UPDATE main SET `text`='%s' WHERE id=%d",
mysqli_real_escape_string($con, $_POST['area1']),
1)); // id
// Success
echo "<p>Data updated.</p>";
}
// Load Existing Data
$myQueryfac="SELECT `text` FROM main WHERE id=1";
$result = mysqli_query($con, $myQueryfac);
$row = mysqli_fetch_array($result);
// Display Form
echo "<form action='test.php' method='post'>
<textarea name='area1' maxlength='1500' cols='50' rows='10'>". $row['text'] ."</textarea>
<input type='submit' name='enter' value='Save'>
</form>";
// DB Close
mysqli_close($con);
?>我改变了什么
id视为字符串,我将其格式化为数字(%d)。sprintf和mysqli_real_escape_string)text (不确定这是否是一个保留字,因为它是sql数据类型之一)发布于 2014-05-28 14:10:07
试着做
mysqli_query($con,"UPDATE main SET text='$t1' WHERE id=1");相反,
mysqli_query($con,"UPDATE main SET text='$t1' WHERE id='1'");它可能是导致你的问题的原因
发布于 2014-05-28 14:10:58
您正在检查$_POST数组中不存在的值。enter是您的提交按钮,不会发送值。
试试这个:
if($_POST['area1']) {
$t1=$_POST['area1'];
mysqli_query($con,"UPDATE main SET text='$t1' WHERE id='1'");
}https://stackoverflow.com/questions/23913629
复制相似问题