2015-11-07 88 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)); 
     } 
    } 
?>