MySQL表没有更新没有错误

时间:2015-11-07 09:23:41

标签: php mysql

我有一小段用于更新SQL表的PHP代码。但是,它应该,因为它现在没有做任何事情,也没有产生任何错误:

$sql = "INSERT INTO `wordpress`.`thor_members` ($key) VALUES('$_POST[$key]') WHERE ID = '$_POST[ID]'";
var_dump($sql);
mysqli_real_escape_string($conn, $sql);

if(mysqli_error($conn)){
    var_dump(mysqli_error($conn));
}

var_dump实际打印的MySQL行如果我将它们运行到PHPMyAdmin中就可以正常工作。

3 个答案:

答案 0 :(得分:0)

$sql = "UPDATE `wordpress`.`thor_members` 
       SET ".$key."='".$_POST[$key]."' WHERE ID = '".$_POST["ID"]."' ";
mysqli_query($sql);

试试这种方式

答案 1 :(得分:0)

$keyVal = mysqli_real_escape_string($conn, $_POST[$key]);
$id     = intval(mysqli_real_escape_string($conn, $_POST['ID']));
// I'm assuming $_POST['ID'] is an int?    

$sql    = "UPDATE `wordpress`.`thor_members` SET $key = '$keyVal' WHERE ID = $id";

mysqli_query($conn, $sql);

if(mysqli_error($conn)){
    var_dump(mysqli_error($conn));
}

这应该有用。

如果$ key来自一个未知来源,你也应该逃避它,但是你之前在自己的代码中设置了这个,这应该就足够了。

但是,你应该真正查找预备语句。

答案 2 :(得分:0)

主题的变体。

<?php
    $sql = "INSERT INTO `wordpress`.`thor_members` ( `$key` ) VALUES ( '".mysqli_real_escape_string( $conn, $_POST[ $key ] )."' ) WHERE `ID` = '".mysqli_real_escape_string( $conn, $_POST['ID'])."'";
    var_dump( $sql );

    $result=mysqli_query( $conn, $sql );
    if( $result ){
        /* yeay - all good */

    } else {

        /* bogus */
        if( mysqli_error( $conn ) ){
            var_dump( mysqli_error( $conn ) );
        }   
    }
?>