使用按钮删除表中列的内容

时间:2013-05-08 10:46:15

标签: php

我的数据库中有一个名为“users”的表。我的表有2列,“user_id”和“profile”。 user_id保留当前登录用户的id。该配置文件保留用户在其配置文件页面中上传的图像的URL。我想要的只是创建一个按钮,删除登录用户的配置文件列的内容。任何想法如何继续前进?

<?php                       
function deleteimage($user_id){
$sql="DELETE `profile` FROM `users`  WHERE 'user_id' = $user_id;";
$result=mysql_query($sql) or die("Error when trying to delete...");
}
?>

<input type="button" value="Delete">

4 个答案:

答案 0 :(得分:1)

DELETE关键字用于行而不是列

如果要清空列,您需要UPDATE记录

"UPDATE `users` SET `profile` = NULL  WHERE `user_id` = $user_id;"

或者,如果profile列不接受NULL值

"UPDATE `users` SET `profile` = ''  WHERE `user_id` = $user_id;"

但是,您应该使用mysqli_PDO,因为mysql_函数已弃用且已从PHP中删除

此外,请确保您正在转发传入此方法的$user_id变量,否则您可能会对SQL注入漏洞开放

答案 1 :(得分:1)

如果你想使列成为emply,你也可以设置空值或Null值

UPDATE `users` SET `profile` = '' WHERE 'user_id' = $user_id;

UPDATE `users` SET `profile` = NULL  WHERE 'user_id' = $user_id;

答案 2 :(得分:0)

您必须设置1个全局变量,该变量将包含登录用户的user_id。

点击按钮,你可以用这个user_id(全局变量)值作为参数调用带有GET或POST的PHP。

它应该有用。

答案 3 :(得分:-1)

您需要先建立与数据库的连接。

我有三个文件,像你的主要PHP脚本,db_config文件:

<?php
/**
 * Database config variables
 */
define("DB_SERVER", "%address%");
define("DB_USER", "%username%");
define("DB_PASSWORD", "%password%");
define("DB_DATABASE", "%dbname%");
?>

然后是连接实用程序脚本:

<?php

/**
 * A class file to connect to database
 */
class DB_CONNECT {

    // constructor
    function __construct() {
        // connecting to database
        $this->connect();
    }

    // destructor
    function __destruct() {
        // closing db connection
        $this->close();
    }

    /**
     * Function to connect with database
     */
    function connect() {
        // import database connection variables
        require_once __DIR__ . '/db_config.php';

        // Connecting to mysql database
        $con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error());

        // Selecing database
        $db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or die(mysql_error());

        // returing connection cursor
        return $con;
    }

    /**
     * Function to close db connection
     */
    function close() {
        // closing db connection
        mysql_close();
    }

}

?>

然后您可以在主脚本中使用它来打开连接:

// include db connect class
require_once __DIR__ . '/db_connect.php';

开头打开与数据库的连接。然后,您可以像在上面的问题中那样进行查询。这种格式使得从多个PHP脚本作为连接器作为单独的类进行查询变得很容易和容易。

然后,您可以在单击按钮时执行该SQL查询的逻辑

要删除您想要的图像网址

UPDATE `users` SET `profile` = NULL WHERE `user_id` = $user_id

您无法直接访问按钮点击。 PHP只是告诉客户端页面显示一个按钮。如果你想在点击它时收到你需要使用类似下面的POST自我推荐的东西来制作一个按钮,当点击它时会发回一个信号回到服务器页面:

<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<input type="submit" name="submit" value="Click Me">
</form>

然后,在PHP页面的顶部,您可以

if(isset($_POST['submit'])) {
    deleteimage($user_id);
}

仅在单击按钮后运行该功能才能执行URL删除功能。

要将脚本迁移到MYSQLI以便将来兼容,请查看oracle wiki指南here

它有一个工具,您可以指向PHP脚本,它将为您进行更改。花了大约2分钟转换我的所有脚本

希望这是有帮助的