我正在尝试使 delete.php 文件正常工作,它应该删除针对 db 上传的文件。有人可以帮我解决我在这里做错的事吗?
致命错误:Uncaught TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, it is on line 7.
这是代码:
<?php
include "dbconnect.php"; // Using database connection file here
$id = $_GET['id']; // get id through query string
$del = mysqli_query($db,"delete from tbl_files where id = '$id'"); // This is line 7, delete query
if($del)
{
mysqli_close($db); // Close connection
header("location:index.php"); // redirects to all records page
exit;
}
else
{
echo "Error deleting record"; // display error message if not delete
}
?>
我在 dbconnect.php 中进行了更改,但这也无济于事。
<?php
//connect mysql database
$host = "xxxxxxxxxxxx";
$user = "xxxxxxxxxxxx";
$pass = "xxxxxxxxxxxx";
$db = "xxxxxxxxxxxx";
$con = mysqli_connect($host, $user, $pass, $db) or die("Error " . mysqli_error($con));
?>
在第 7 行尝试将 $db 替换为 $con,因为 dbconnect.php 上的 $db 是一个简单的变量和 mysqli_query() 函数,第一个参数需要一个 mysql 对象。在第一个程序示例中抢劫:
include 'dbconnect.php';
// 清理输入参数
$id = mysqli_real_escape_string($db, $_GET['id']);
mysqli_real_escape_string 从输入中删除所有特殊字符。
// 从数据库中删除记录
$sql = "DELETE FROM tbl_files WHERE id = '$id'";
if (mysqli_query($con, $sql)) {
mysqli_close($con);
header("Location: index.php");
exit;
}
else
{
\
echo "Error deleting record: " . mysqli_error($db);
}
\
这应该可行,我不知道为什么,因为从根本上说它是相同的,只是格式不同。但它更安全,您还应该通过执行 getenv('variable_name'); 来研究使用环境变量。在需要变量和 putenv('variable_name=variable_value') 的脚本中;在 dbconnect 脚本中,您只需配置凭据并在主 php 脚本中连接,以便更容易修复错误。