2013-10-17 51 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