2016-06-07 115 views
1

構建新手級用戶管理系統。以下代碼用於從我的表中刪除記錄。從表中刪除記錄的問題

當您單擊用戶管理頁面上的刪除鏈接時,它會使用該ID通過刪除文件(此代碼)轉發。

有人能指出爲什麼它不起作用,爲什麼$ result返回false?去容易對我,我是一個完整的新手:)

<?php 

$host = 'localhost'; 
$user = 'tim_williams'; 
$pass = 'baroness'; 
$db = 'php_db05'; 

$link = mysqli_connect($host, $user, $pass, $db); 


if(!$link) { 
    die("Database connection failed: " . mysqli_connect_error()); 
} 

$id = $_GET['id']; 


$sql = "DELETE * 
       FROM registeredusers 
       WHERE UserID = $id"; 

$delete = mysqli_query($link, $sql); 

//var_dump($delete); 



if($delete) { 
    header('Location: mysql-project-users-manage.php'); 
    exit; 
} 

?>

+0

你的代碼可以SQL調入。至少,使用'$ id =(int)$ _ GET ['id'];'來防止一些。另外,嘗試直接在數據庫中運行DELETE語句並檢查是否有任何錯誤消息。 –

+0

DELETE上的RTM http://dev.mysql.com/doc/refman/5.7/en/delete.html你的是無效的,檢查錯誤會引發你一些問題。 –

回答

0

你有一個SQL語法錯誤,因爲你如果查詢成功從來沒有檢查,你永遠不會告訴。在最低限度,你應該有類似

$result = mysqli_query(...) or die(mysqli_error($link)); 

具體做法是:

$sql = "DELETE * 
       FROM registeredusers 

不指定在delete查詢字段。您正在刪除整行,因此指定字段(包括所有字段的*)是多餘/毫無意義的。語法很簡單:

DELETE FROM yourtable 

而且最重要的是,你是容易sql injection attacks,所以喜歡有你的服務器pwn3d。