2016-01-04 24 views
-3

出於某種原因,它不會更新,而是它會添加新的數據。我是初學者,我很難找出錯誤。SQL更新錯誤。而不是更新,其添加

閱讀功能工作得很好,插入作品也很好。它只是更新不能正常工作或插入而不是更新查詢或數據。

<?php include "db.php"; ?> 
<?php include "functions.php" ?> 
<?php 
    if(isset($_POST['submit'])) 

    {$username = $_POST['username']; 

     $password = $_POST['password']; 

     $id = $_POST['id']; 

     $querys = "UPDATE users SET "; 

    $querys .= "username = '$username', "; 

    $querys .= "password = '$password' "; 

    $querys .= "WHERE id = $id "; 


    $result = mysqli_query($connection, $querys); 

    if(!$result) 
     { 
      die('Query FAILED'. mysqli_error($connection)); 
     } 
    } 

    ?> 
<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
    <link rel="stylesheet" 
     href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css 
     "> 
    </head> 
    <body> 
    <div class="container"> 
     <div class="col-xs-6"> 
     <form action="login_create.php" method="post"> 
      <div class="form-group"> 
      <label for="username">Username</label> 
      <input type="text" name="username" class="form-control"> 
      </div> 
      <div class="form-group"> 
      <label for="password">Password</label> 
      <input type="password" name="password" class="form-control"> 
      </div> 
      <div class="form-group"> 
      <select name="id" id=""> 
      <?php 
       showAllData(); 
       ?> 
      </select> 
      </div> 
      <input class="btn btn-primary" 
      type="submit" name="submit" value="Update"> 
     </form> 
     </div> 
    </div> 
    </body> 
</html> 

謝謝你的幫助。

+2

「由於某種原因,它不會更新,而是將添加新的數據。」不。更新語句**僅**更新現有行。它不插入。此外,此代碼表明您正在開發一個非常不安全的網站,其中存在多個重大安全問題。 –

+0

然後,您必須從您的'

'標籤中調用錯誤的腳本。這看起來很可能,因爲這種形式有'action =「login_create.php」'也許這應該是'action =「login_update.php」' – RiggsFolly

+0

非常感謝你,這似乎是這個問題,但是當我修復它運行到另一個問題。我不知道網站有多不安全,因爲我只是一個初學者。但非常感謝你的高舉。 –

回答

-1

喜檢查這是更新

if(isset($_POST["submit"])) { 

$link=Conect(); 
$id=$_POST["id"]; 
$value1=$_POST["value1"]; 
$value2=$_POST["value2"]; 
$value3=$_POST["value3"]; 
$query = "UPDATE table_name SET field1='".$value1."', 
field2='".$value2."', 
"."field3='".$value3."' WHERE id='".$id."'"; 
$action =mysql_query($query,$link); 

    $result=mysql_query($query,$link) or die("Error: ".mysql_error()); 
    echo "was update the code: ".$id; 

} 

和好運一個小例子

+0

這似乎是問題中已經顯示的更新聲明的通用版本,因此不會回答問題。此外,就像這個問題一樣,它是很糟糕的代碼,它極易受到SQL注入攻擊。 –