我的数据库中有一个名为“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">
答案 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分钟转换我的所有脚本
希望这是有帮助的