2015-11-18 175 views
-1

我想要獲得一個表格來刪除表中的行,但我正在做的一切,但行刪除。它清除表中的所有值,但不會刪除行或ID。我試圖做出這種MySQL不刪除記錄

PHP腳本

<?php 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
// Setting up the Database Connection 
$servername = "localhost"; 
$username = "root"; 
$password = "Fh3dSWIWCLd4"; 
$dbname = "servers"; 
$conn = new mysqli($servername, $username, $password, $dbname); 

if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
//Capturing the POST Data 
$id = $_POST['id']; 

$sql = "DELETE FROM sv_info WHERE id='$id' LIMIT 1"; 

// Executing the SQL statement 
if ($conn->query($sql) === TRUE) { 
header("Location:http://osgaming.joec.pw/login/"); 
} else { 
echo "Error: " . $sql . " 
" . $conn->error; 
} 
// Closing the database connection 
$conn->close(); 
} 
?> 

HtmlForm控件

<?php include 'sql-dbsv-del.php'; ?> 
<h2><b class="e">Delete Entries</b></h2> 
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" class="form-group"> 
<label for="id">Database ID</label> 
<input type="number" name="id" class="form-control" placeholder="Database ID"><br /> 
<input type="submit" value="Delete Entry" class="btn btn-danger"> 
</form> 

https://gyazo.com/ca3f10f862b3993f5d716cb49242304b 有一個形象它是做什麼的變量在數據庫

+0

「ID」列是「字符串」還是「整數」?如果它是一個整數,你應該設置'id = 4',否則'id ='4''如果它是一個字符串。 – Ohgodwhy

+0

使用預處理語句而不是直接將參數注入查詢。這個''DELETE FROM sv_info WHERE id ='。$ id。' LIMIT 1「;'讓你的系統容易受到SQL注入攻擊。 –

+0

Echo $ sql並查看是否發佈了id。 –

回答

1

你的SQL語句這裏:

$sql = "DELETE FROM sv_info WHERE id='4' LIMIT 1"; 

完全沒有使用變量$id。您嘗試在每次執行時刪除id = 4。如果這個ID不存在,你就默默無聞。

+0

我的不好,我忘了把它改回來,因爲我試圖測試它是否可以作爲數字而不是變量 –

3

學習基本的PHP字符串語法:

$sql = "DELETE FROM sv_info WHERE id='.$id.' LIMIT 1"; 
     ^--start of PHP string      ^---end of PHP string 

您正在生成的文本查詢字符串

DELETE FROM sv_info WHERE id='.4.' LIMIT 1 

注意你在PHP字符串連接不好的嘗試實際上是如何成爲查詢字符串的一部分。你已經是IN一個PHP字符串,所以你不能在該字符串內執行PHP - PHP不是遞歸嵌入/可執行的。

這些要麼會工作:

$sql = "DELETE FROM sv_info WHERE id='$id' LIMIT 1"; 
$sql = "DELETE FROM sv_info WHERE id='" . $id . "' LIMIT 1"; 

當然的,但還是讓你容易受到sql injection attacks

+0

Still是不是很工作,這是它的作用:https://gyazo.com/ca3f10f862b3993f5d716cb49242304b –