簡體   English   中英

使用PHP和MySQL從表中刪除

[英]Deleting from table using PHP and MySQL

嘗試使用PHP / SQL查詢從SQL表中刪除管道(用戶名)時似乎出現錯誤。 我當前的代碼如下:

<html lang="en" >
<body>
<?php
        $conn = new mysqli('localhost', 'myUsername', 'myPassword', 'dbName') or die ('Cannot connect to db');

        $uname=$_POST['uname'];

        $conn->query("DELETE FROM Account WHERE username = $uname");

        echo '<script type="text/javascript">';
        echo 'alert("-ADMIN-\nRemoved user successfully!");';
        echo 'window.location.href = "admin.php";';
        echo '</script>';
?>
</body>
</html>

此完全相同的代碼可用於從其他表中刪除網站中的帖子,但不會按用戶名刪除用戶帳戶。 有任何想法嗎?

大概$uname是一個字符串,列username也是一個字符串,因此您需要在字符串中引用該變量

$conn->query("DELETE FROM Account WHERE username = '$uname'");

但是,這的確使您的代碼可以進行sql注入,因此最好使用准備好的語句

$stmt=$conn->prepare("DELETE FROM Account WHERE username = ?" );
$stmt->bind_param('s', $uname );
$stmt->execute();

簽出此解決方案

<?php
$conn = new mysqli('localhost', 'myUsername', 'myPassword', 'dbName') or die ('Cannot connect to db'); 
 $stmt = $conn->prepare('DELETE FROM Account WHERE username = ?');
 $stmt->bind_param('s', $_POST['uname']); 
 $stmt->execute();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM