2015-11-07 77 views
0

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

$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实际打印,如果我跑他们进入的phpMyAdmin是完全正常工作的MySQL线。

+0

用'INSERT INTO'更新表? – lad2025

+0

'$ _POST [ID]'?? 'ID'附近缺少引号 – RamRaider

+0

我们使用'mysqli_query()'执行查询 – Saty

回答

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来自未知来源,那么您也应该转义它,但是如果您之前在自己的代码中设置了该值,则应该足够了。

但是,您应该真正查找准备好的语句。

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

尝试这种方式

+0

如何在INSERT中使用where条件查询 – Saty

+0

我有更新我的答案 –

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)); 
     } 
    } 
?>