2013-04-29 61 views
0

我目前正在创建一个链接到后端数据库的网站,我有一个可由用户更新的帐户页面。我一直在尝试添加一个允许当前登录用户删除其帐户的按钮。数据库行中的一个字段将不会删除

当时所有的字段被删除,除了用户名,这意味着登录仍然是一个选项。

有没有人有办法解决这个问题。请注意,我正在使用会话。

<?php 

    $username = $_SESSION['username']; 
    $connect = mysql_connect("localhost","labuser","Labuser1"); 

    $DB = mysql_select_db('ubiquiblog'); 
    $query = "DELETE * FROM user_details WHERE username = '$username'"; 

    if (!mysql_query($query, $connect)) 
     die("ERROR : Unable to query db : " . mysql_error()); 

?> 

screenshot

问题前端页面重定向您的帮助大家

谢谢:)

_______________________________CLOSED_________________________________________

+0

可以粘贴用于删除记录的代码的例子吗?由于你的基本描述很难看到什么是错的。 – someuser 2013-04-29 01:00:14

+2

对于初学者,您不要删除字段。一个'DELETE'语句删除整个行。我看到的另一个问题是,当对'mysql_query()'的调用成功时,你会死于错误消息 – Phil 2013-04-29 01:04:55

+0

@ Phil我认为海报试图删除整行。 – someuser 2013-04-29 01:08:29

回答

1

首先,你不应该使用MySQL扩展。它已被弃用。你应该使用PDO或MySQLi。我建议前者。

这里有一个简单的DELETE语句

<?php 
session_start(); // you'll need this to access anything in $_SESSION 

// enable error reporting for development 
ini_set('display_errors', 'On'); 
error_reporting(E_ALL); 

if (!isset($_SESSION['username'])) { 
    throw new Exception('No username in session'); 
} 

$pdo = new PDO('mysql:host=localhost;dbname=ubiquiblog;charset=utf8', 
    'labuser', 'Labuser1'); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$stmt = $pdo->prepare('DELETE FROM `user_details` WHERE `username` = ?'); 
$stmt->bindParam(1, $_SESSION['username']); 

$stmt->execute(); 

printf('Deleted %d row(s) for username "%s"', 
    $stmt->rowCount(), $_SESSION['username']); 
+0

谢谢,但仍然相同的问题 – 2013-04-29 01:13:32

+0

@SeaninLedgewood我刚刚更新了我的答案。我会说这里真正的问题是你错过了对'session_start()的调用' – Phil 2013-04-29 01:14:17

+0

谢谢,但同样我害怕:( – 2013-04-29 01:16:30

相关问题