0

为了使代码更高效,我如何编写代码来用一行更新 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 它直接将编辑连接到数据库中的正确位置

那么隐藏表单字段如何将动态信息传递给此代码,以便我只能简化代码,或者甚至有可能吗?

4

2 回答 2

1

问题在于使用 GET 方法。这意味着表格中的每个变量都显示在地址栏中。您需要更改表单以使用 POST 方法

<form name="name" action="url.php" method="POST" target="_blank">
...
</form>
于 2012-10-23T01:01:40.730 回答
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'";

您的数据库查询中也不需要 a LIMIT

于 2012-10-23T01:03:53.507 回答