gpt4 book ai didi

PHP MYSQL删除语法错误

转载 作者:行者123 更新时间:2023-11-29 03:47:57 24 4
gpt4 key购买 nike

我已经查看了我的查询语句。当我在 MYSQL 中运行“DELETE FROM users WHERE id = (Some Int)”时,它成功执行并且一切似乎都很好。但是,当我尝试执行相同的命令时,在 MYSQL 中出现语法错误,接近 "。

include 'db_connect.php'; // connects to db

$action = isset($_GET['action']) ? $_GET['action'] : "";

if($action=='delete'){ //if the user clicked ok, run our delete query

$query = "DELETE FROM users WHERE id = ".$mysqli->real_escape_string($_GET['id'])."";

//execute query

if( $mysqli->query($query) ){

//if successful deletion

echo "User was deleted.";

}else{

//if there's a database problem

echo "Database Error: Unable to delete record.";
$disp = mysqli_error($mysqli);
print($disp);
}

编辑 1:当我打印出 $query 时,我得到:“DELETE FROM users WHERE id =”。id 为空。

我试过将 $query 更改为以下内容:

 $query = "DELETE FROM users WHERE id = ".$mysqli->real_escape_string($_GET['id']);// prints nothing
$query = "DELETE FROM users WHERE id = ".$mysqli->$_GET['id'];// prints nothing
$query = "DELETE FROM users WHERE id = ".$mysqli->$id;// prints nothing

我还是不明白为什么我不能在这里使用$id。我调用了一个使用 id 的 javascript 函数,它工作正常......我得到一个弹出窗口,其中打印了正确的 id。

echo "<a href='#' onclick='delete_user( {$id} );'>Delete</a>";
function delete_user( id ){
var answer = confirm('Are you sure?'+id);
if ( answer ){ //if user clicked ok
window.location = 'delete.php?action=delete&amp;id=' + id;
}
}

最佳答案

尝试 $_GET['amp;id']$_REQUEST['amp;id'];

输出var_dump时

var_dump($_REQUEST);

它返回如下输出:

array(2) { ["action"]=> string(6) "delete" ["amp;id"]=> string(2) "39" }

看到表单字段名称不是 id 它是 amp;id。所以检查一次表单字段名称。

注意:

$_REQUEST An associative array that by default contains the contents of $_GET, $_POST and $_COOKIE

那么query就变成了

$query = "DELETE FROM users WHERE id = ".$mysqli->real_escape_string($_REQUEST['amp;id']);

关于PHP MYSQL删除语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32621468/

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