**关闭。**这个问题是not reproducible or was caused by typos。目前不接受答复。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
3天前关闭。
Improve this question
我正在尝试删除。php文件的工作,它假设删除文件上传对数据库.有人能帮我解决我在这里做错了什么吗?
致命错误:未捕获的类型错误:mysqli_query():参数#1($mysql)必须是mysqli类型,它在第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));
?>
2条答案
按热度按时间8zzbczxx1#
// sanitize输入参数
$id = mysqli_real_escape_string($db, $_GET['id']);
mysqli_真实的_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脚本中连接,这样bug修复就更容易了。
ej83mcc02#
在第7行,尝试将$db替换为$con,因为dbconnect上的$db。php是一个简单的变量和mysqli_query()函数,第一个参数应该是mysql对象。在第一个程序示例中看看这个:
https://www.php.net/manual/en/mysqli.query.php