从数据库PHP

时间:2015-09-02 11:33:43

标签: php html mysql

我创建了一个名为" 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();

?>

3 个答案:

答案 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" ;