2013-10-17 47 views
0

有人可以幫助我在用戶註銷時從sql表中刪除用戶數據嗎?無法使用php刪除sql行

我的註銷文件是:

<?php 
//Start session 
session_start(); 
include('config.php'); 
require_once('delete.php'); 

//Unset the variables stored in session 
unset($_SESSION['SESS_MEMBER_ID']); 
unset($_SESSION['SESS_FIRST_NAME']); 
unset($_SESSION['SESS_LAST_NAME']);?> 

之初所需要的刪除文件應該用空值替換用戶價值,因爲我不能刪除,也...

的刪除文件是這樣的:

<?php 
//Start session 
session_start(); 

include('config.php'); 

$login= $_POST['username']; 
$password= $_POST['password']; 

mysql_query("UPDATE registo SET username='' AND password='' WHERE username='$login' AND password='$password'"); 
{ 
    echo "Deleted Successfully"; 
}?> 

請幫忙!

+3

1語法錯誤。 第二個mysql_函數在最新的PHP版本中已棄用,因此請使用mysqli或PDO。 第三你不逃避所有的輸入帖子,任何人都可以注入你的數據庫... – Svetoslav

+0

你包含'config.php'兩次,並設置'session_start()'兩次。 –

+0

什麼是mysql_query之後的{}?你有任何錯誤? –

回答

0

UPDATE子句的語法是這樣的:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference 
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... 
    [WHERE where_condition] 
    [ORDER BY ...] 
    [LIMIT row_count] 

也就是說,你提供了一個逗號分隔的列清單。

你有這樣的:

UPDATE registo 
SET username='' AND password='' 

沒有逗號,所以你告訴MySQL的更新只有一列:username。新值爲'' AND password=''。這是零:

mysql> SELECT '' AND password='' FROM registo; 
+--------------------+ 
| '' AND password='' | 
+--------------------+ 
|     0 | 
+--------------------+ 
1 row in set (0.00 sec) 

因此,你的代碼等於:

UPDATE registo 
SET username=0 

你可能是說:SET必須有獨立後

UPDATE registo 
SET username=NULL, password=NULL 
+0

非常感謝您的評論,但我會嘗試更具體: – Triole