我有一个表单,我想更新数据库。如果我只想更新输入字段或第2行输入字段中的第1行,那么如何使用更新查询?注意:我希望以前的数据保留,因为它存储在数据库中。
这是来自代码。
<?php include 'header.php'; ?>
<?php
if(isset($_POST) && count($_POST)>0) {
$description1 = $_POST['line1_desc'];
$description2 = $_POST['line2_desc'];
$sSQL =mysql_query("UPDATE tbl_images SET $description1,$description2 Where id=".intval($_GET['id']));
if($sSQL){
echo 'done';
}
else {
mysql_error();
}
//header("location: show_property_pic.php");
}
?>
<div>
<form name="frmProudct" id="frmProduct" action="" method="post" enctype="multipart/form-data">
<table align='center'>
<tr>
<td>Line1:</td>
<td> <textarea cols="100" name="line1_desc"></textarea></td>
</tr>
<td>Line2:</td>
<td> <textarea cols="100" name="line2_desc"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" id="btnSub" value="Save" /> </td>
</tr>
</table>
</form>
</div>
<?php include 'footer.php' ?>
提前致谢。
答案 0 :(得分:0)
基本上,您的SQL语句是错误的。
应该是:
'UPDATE <tablename> SET <fieldname> = "<Content>", <fieldname> = "<Content>" WHERE <Condition>'
在你的情况下
'UPDATE tbl_images SET description1 = "' . $description1 . '", description2 = "' . $description2 . '" Where id='.intval($_GET['id'])
但请告知SQL Injection
和Prepared Statements
。并立即停止使用mysql_
函数!最好使用mysqli_
进行快速迁移,即使是PDO
,也要好1.000倍。
答案 1 :(得分:0)
如果你想让第二个textarea可选,你可以创建一个初始字符串(这是第一个textarea),然后如果它不为空则只附加第二个。请考虑以下示例:Sample Fiddle
if(isset($_POST['line1_desc']) && (trim($_POST['line1_desc']) != '')) {
$input[] = "`line1_desc` = '" . $_POST['line1_desc'] ."'";
}
if(isset($_POST['line2_desc']) && (trim($_POST['line2_desc']) != '')) {
$input[] = "`line2_desc` = '" . $_POST['line2_desc'] ."'";
}
$values = implode(', ', $input);
$statement = "UPDATE `tbl_images` SET $values WHERE `id` = your_id";
echo $statement;
// if both textareas have input:
// UPDATE `tbl_images` SET `line1_desc` = 'comment 1', `line2_desc` = 'comment 2' WHERE `id` = your_id
// if only line1_desc1 textarea is only provided:
// UPDATE `tbl_images` SET `line1_desc` = '1' WHERE `id` = your_id
// if only line1_desc2 textarea is only provided:
// UPDATE `tbl_images` SET `line2_desc` = '2' WHERE `id` = your_id
注意:如果可能,请迁移/使用较新版本的mysql扩展名
MYSQLI
或使用PDO