2013-04-29 59 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

相關問題