我创建了一个名为" users"的数据库表。并填写了一些数据。 我想在PHP中删除一行,因为我正在创建一个包含帐户的网站。因此,如果用户想要删除他的帐户,他必须输入他的用户名并点击"删除"按钮。我已经编写了这个PHP代码,但不幸的是它没有用。 有关解决问题的任何帮助吗?
PHP代码
<?php
$ _ POST [form_username];
//connection_start
$mysqli = new mysqli('mysql3.000webhost.com','a4305565_os','******','a4305565_users');
//check_connection
if($mysqli->connect_error){
die("Connection error (check_connection): " . $mysqli->connect_errno . " : " . $mysqli->connect_error );
exit();
}
//delete_data
$deleteUser = "DELETE * FROM `users` WHERE `users`.`username` = "$_POST[form_username]" LIMIT 1" ;
$delete = $mysqli->query($deleteUser);
//verification
if($delete){
printf ("Account id %d.\n has been deleted.", $mysqli->insert_id);
}else{
die("Error (verification): {$mysqli->errno} : {$mysqli->error}");
}
//Connection_end
$mysqli->close();
?>
答案 0 :(得分:1)
问题是你的字符串。
$deleteUser = "DELETE FROM `users` WHERE `users`.`username` = '".$_POST[form_username]."' LIMIT 1" ;
您需要在输入的字符串周围使用单引号,并在内部使用点来告诉PHP您正在使用变量。但是,您应该逃避数据,这样您就不会受到SQL注入攻击。尝试使用
$username = $mysql->escape_string($_POST['username']);
$deleteUser = "DELETE FROM `users` WHERE `users`.`username` = '".$username."' LIMIT 1" ;
答案 1 :(得分:0)
"DELETE FROM `users` WHERE `users`.`username` = '".$_POST['form_username']."' LIMIT 1" ;
以上是编写查询的正确方法
从哪里获得$_POST['form_username']
值
答案 2 :(得分:0)
改变它
$deleteUser = "DELETE * FROM `users` WHERE `users`.`username` = "$_POST[form_username]" LIMIT 1" ;
要
$deleteUser = "DELETE FROM `users` WHERE `users`.`username` = "$_POST[form_username]" LIMIT 1" ;