0

我的数据库中有一个名为“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

4 回答 4

1

如果要使列 emply 还可以设置空白值或 Null 值

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

或者

UPDATE `users` SET `profile` = NULL  WHERE 'user_id' = $user_id;
于 2013-05-08T10:52:29.223 回答
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_或函数PDOmysql_被弃用并从 PHP 中删除

另外,请确保您正在转义$user_id您传递给此方法的变量,否则您可能会让自己面临 SQL 注入漏洞

于 2013-05-08T10:50:07.090 回答
0

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

并且在单击按钮时,您可以使用 GET 或 POST 调用 PHP,并将此 user_id(全局变量)值作为参数。

它应该工作。

于 2013-05-08T10:51:31.953 回答
-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 指南。

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

希望这会有所帮助

于 2013-05-08T10:52:44.393 回答