2011-02-25 52 views
1

我的功能db_modif();有問題。每次,如果該值是正確的並且存在,則該消息是第一個(if條件)。PHP和SQL問題

echo "Il n'y a aucun compte au nom de: ".$username." au site: ".$site." dans la base de données"; 

因此,有我的數據庫中沒有修改 這裏是我的代碼形式操作:

<?php 
    $username = $_POST["user_search"]; 
    $site = $_POST["adr_search"]; 
    $fonction = $_POST["fonction"]; 
    $modif = $_POST["modif_value"]; 

    $prep =""; 

    if(!$username) 
    echo 'Nom d\'utilisateur manquant..'; 
    elseif(!$site) 
    echo 'Site manquante..'; 
    else{ 
    require("db_action.php"); //Require in the database connection. 
    $bd = db_open();    // Open DATABASE 

    if($fonction == "usernameOp") 
     $prep = "username"; 
    if($fonction == "adresseOp") 
     $prep = "adresse"; 
    if($fonction == "passwdOp") 
     $prep = "password"; 
    if($fonction == "siteOp") 
     $prep = "siteWeb"; 
    if($fonction == "fonctionOp") 
     $prep = "fonction"; 

    db_modif($prep, $username, $site, $modif); 
    db_close($bd); 
    }//ELSE 

,在功能db_modif();

function db_modif($prep, $username, $site, $modif){ 

    error_reporting(-1); //Activer le rapport de toutes les genres d'erreurs 

    $querycon = "UPDATE info_compte SET $prep = '$modif' WHERE username = '$username' AND siteWeb = '$site'"; 
    if($response = mysql_query($querycon) or trigger_error(mysql_error())){ 
    echo "<pre>"; 
    echo "Il n'y a aucun compte au nom de: <b>".$username."</b> au site: <b>".$site."</b> dans la base de données"; 
    echo "</pre>"; 
    } 
    else{ 
    mysql_query($querycon); 
    echo "<pre>\n"; 
    echo "Le compte <b>".$username."</b> du site : <b>".$site."</b> a été supprimé avec succès\n"; 
    echo "</pre>"; 
    }//ELSE 
}//db_modif 

回答

3

變化AND WHERE只是AND在這條線上:

$querycon = "UPDATE info_compte SET $prep = '$modif' 
      WHERE username = '$username' 
      AND WHERE siteWeb = '$site'"; 

我建議你使用mysql_error()來幫助調試將來的這類問題。

$response = mysql_query($querycon) or trigger_error(mysql_error()); 

您還可能有一個SQL注入漏洞,是否有這些變量都可以包含引號。考慮在準備好的語句中使用mysql_real_escape_string或PDO。

+0

我使用你的'$ response = mysql_query($ querycon)或trigger_error(mysql_error());'但它仍然是一樣的 – HulkThor 2011-02-25 23:25:02

+0

@HulkThor:你改錯了。你還沒有解決我提到的錯誤。你應該檢查['mysql_affected_rows'](http://www.php.net/manual/en/function.mysql-affected-rows.php)的值,而不是$ response的值。 – 2011-02-25 23:30:19

+0

我應該如何使用它? 對不起,我修改它在我的腳本上,而不是我的答案..我編輯它 – HulkThor 2011-02-25 23:34:45