为了使代码更有效,我如何编写代码以使用单行UPDATE mysql列?可能吗?
当前代码的示例。
if (isset($_POST['editsongname'])) {
$id = $_POST['songid'];
$newtitle = mysql_real_escape_string($_POST['songname']);
$doSongNameEdit = "UPDATE `$database_main`.`lyrics` SET `lyrics`.`title` = '$newtitle' WHERE `lyrics`.`id` = '$id' LIMIT 1" or die(mysql_error());
$retval = mysql_query( $doSongNameEdit, $main );
if(! $retval )
{
die('Could not update data: ' . mysql_error());
}
header("Location: song.php");
//echo "<b>Updated Successfully</b> - <a href=\"song.php\">Return to edit lyrics page</a>\n ";
}
(表格代码)
> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" name="<?php echo
> $sid; ?>" method="POST"> <input type="hidden" name="songid"
> value="<?php echo $sid; ?>">
(sid的例子) 228106 这将编辑直接连接到数据库中的正确位置
那么隐藏表单字段如何将动态信息传递给此代码,以便我只能简化代码或甚至可能?
答案 0 :(得分:1)
问题是使用GET方法。这意味着地址栏中显示的表单的每个变量。您需要更改表单以使用POST方法
<form name="name" action="url.php" method="POST" target="_blank">
...
</form>
答案 1 :(得分:0)
这取决于您使用的表单方法($ _GET或$ _POST)。
<input type="hidden" name="songid" value="<?php echo $sid; ?>">
$id = $_GET['songid'];
-- OR --
$id = $_POST['songid'];
$doTextEdit = "UPDATE texts
SET texts.text = '$newtext'
WHERE
texts.id = '$id'";
您的数据库查询中也不需要LIMIT
。