2017-08-06 47 views
0

我寫了這段代碼來更新我的sql表中的條目,但我沒有什麼錯。使用此代碼更新SQL數據,檢查代碼很多次

這裏是我的形式

<form action="" method="POST"> 
    <center> 
    Alumni_ID : 
    <input type="text" name="valueh"> 
    <br> 
    <input type="text" name="name" placeholder="name"> 
    <input type="text" name="phone" placeholder="contact details"> 
    <input type="text" name="details" placeholder="details"> 
    <input type="text" name="address" placeholder="address"> 
    <input type="submit" value="update data"> 
    </center> 
</form> 

這是PHP頁面,

<?php if (isset($_POST['submit'])) { 
    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "tssolutions"; 
    $ab = $_POST['name']; 
    $bc = $_POST['phone']; 
    $cd = $_POST['details']; 
    $de = $_POST['address']; 
    $posted = $_POST['valueh']; 

    //create connection 
    $conn = mysqli_connect($servername, $username, $password, $dbname); 
    //check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 
    //echo "connected successfully"; 
    $sql = " UPDATE phone SET name='".$ab."', phone='".$bc."', details='".$cd."', address='".$de."' WHERE name = '".$posted."' "; 
    if(mysqli_query($conn, $sql)) { 
     echo "<hr>"; 
     echo "<h3 class='w3-center' style='text-color:black'>Record Successfully Updated</h3>"; 
    } else { 
     echo "<hr>"; 
     echo "<h3 class='w3-center' style='text-color:black'>Error While Updating, Try Again</h3>"; 
    } 
    mysqli_close($conn); 
} ?> 

兩個密碼都在同一個頁面Update.php,我想送alumni_id,這樣我可以更新記錄alumni_id =表格電話中的姓名,然後發送該行的新值。

+0

不要Munge時間SQL查詢字符串與值。相反,學習如何正確使用參數。篡改查詢字符串可能會導致無法解釋的查詢錯誤。 –

+0

更值得關注的是連接SQL字符串,而不是在您的編程語言或選擇庫中使用參數化支持,這是因爲您打開自己的SQL注入攻擊。 – Craig

+0

也許你有一個單引號的輸入值。使用參數可以讓你免受這個問題的困擾,同時也可以避免SQL注入攻擊。 – Craig

回答

0

您忘記命名提交按鈕

取而代之的是o ˚F

<input type="submit" value="update data"> 

試試這個

<input type="submit" name="submit" value="update data"> 
+0

感謝您的幫助 –

0

要調試代碼,你可以重複你的SQL語句

 echo $sql = "UPDATE phone SET name='".$ab."', phone='".$bc."', details='".$cd."', address='".$de."' WHERE name = '".$posted."'; 

然後你可以看到,如果你有正確的語法和你的價值觀正確發送

+0

謝謝,它幫助我重新定義下一段代碼。這是一個方便的技巧。 –

0

試試這個代碼,也許這有助於

$sql = " UPDATE phone SET `name` ='$ab', `phone` ='$bc', `details` ='$cd', `address`='$de' WHERE `name` = '$posted' "; 
+0

謝謝你的考慮,但我解決了它:)。 –