有mysql UPDATE的问题

时间:2012-10-22 23:43:30

标签: php mysql

我在页面提交时有一个提交按钮,它返回空白并且没有更新,回显也是空白的。

<?
    if (isset($_POST['submit'])) {
        $newtext = mysql_real_escape_string($_POST['text']);
        $doTextEdit = "UPDATE `$database_main`.`texts` SET `texts`.`text` = '$newtext' WHERE `texts`.`id` = '$sid' LIMIT 1" or die(mysql_error());

        $retval = mysql_query( $doArtistEdit, $main );
        if(! $retval )
        {
            die('Could not update data: ' . mysql_error());
        }
        header("Location: ".$_SERVER['HTTP_REFERER']);
        }
    ?>

这是表格代码

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" name="$ID" method="post">
        Song Name : <input type="text" name="title" value="<?php echo $row_song['title']; ?>"> by Artist Name :<input type="text" name="artist" value="<?php echo $row_artist['artist']; ?>"><br><?php echo $sid; ?><?php echo $database_main; ?><?php echo $doTextEdit; ?>
        Lyrics :<br><textarea name="text" cols="72" rows="20"><?php echo str_replace("\n","\n",$row_Recordset1['text']); ?></textarea><br>
        <input type="submit" name="editlyrics" value="Edit"></form>

2 个答案:

答案 0 :(得分:3)

您正在检查是否设置了$_POST['submit'] -

if (isset($_POST['submit']))

但您的提交按钮名称为editlyrics,因此应为 -

if (isset($_POST['editlyrics']))

在表单中添加隐藏的输入 -

<input type="hidden" name="song_id" value="<?php echo $sid; ?>">

现在你的代码就像 -

<?
if (isset($_POST['editlyrics'])) {
    $song_id = mysql_real_escape_string($_POST['song_id']);
    $newtext = mysql_real_escape_string($_POST['text']);
    $doTextEdit = "UPDATE `$database_main`.`texts` SET `texts`.`text` = '$newtext' WHERE `texts`.`id` = '$song_id' LIMIT 1" or die(mysql_error());

    $retval = mysql_query( $doTextEdit, $main );
    if(! $retval )
    {
        die('Could not update data: ' . mysql_error());
    }
    header("Location: ".$_SERVER['HTTP_REFERER']);
    }
?>

请注意,您不应使用过时的mysql_函数编写代码,并了解mysqliPDO - php.net/manual/en/mysqlinfo.api.choosing.php

答案 1 :(得分:0)

您正在$doTextEdit中设置SQL查询,但是您正在将$doArtistEdit传递给mysql_query()函数。