gpt4 book ai didi

php - 我的代码、mysql、PDO 准备删除语句有什么问题?

转载 作者:行者123 更新时间:2023-11-29 07:42:41 25 4
gpt4 key购买 nike

为什么我的代码不起作用。帮帮忙,我没看出有什么问题。如果我使用 user_id=$current_user 而不是 user_id=:current_id ,它就可以工作。但出于安全原因我需要做好准备。请帮忙。

<?php
$hostname = 'localhost';
$username = '**';
$password = '**';
$dbname = '**';
try {
$db = new PDO("mysql:host=$hostname;dbname=$dbname", "$username" ,"$password" ,
array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

} catch (PDOException $e) {
echo" There was an error with the connection";
}

$current_user=$_POST['users_id'];//get user id

include 'db_tag.php';
$stmt=$db->prepare("DELETE FROM object_sign WHERE user_id=:current_id");

$stmt->bindParam(":current_id",$current_user,PDO::PARAM_INT);
$stmt->execute();

?>

最佳答案

@conan,使用我提到的以下代码,您需要使用此代码检查以下几点。

1) 打印 $current_user id 以确保 id 正确显示或不正确,此外,我还设置了条件,如果帖子包含用户 id,则仅执行查询。

2)我已经设置了异常,以便您可以通过异常消息检查错误。

<?php
include 'db_tag.php';

$hostname = 'localhost';
$username = '**';
$password = '**';
$dbname = '**';

try {
$db = new PDO("mysql:host=$hostname;dbname=$dbname", "$username" ,"$password" ,
array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

if(isset($_POST['users_id'])) {
$current_user=$_POST['users_id'];//get user id

$stmt=$db->prepare("DELETE FROM object_sign WHERE user_id=:user_id");

$stmt->bindParam(":user_id",$current_user);
$stmt->execute();
}
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
?>

关于php - 我的代码、mysql、PDO 准备删除语句有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28599538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com