我有一个问题,我的连接适用于某些事情但不适用于其他事情。 这是我的sqlconn.php文件中的代码:
//db connection details
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";
//create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
我得到的错误是: "致命错误:在非对象"
上调用成员函数query()问题代码是:
include ('sqlconn.php'); $entryID = htmlspecialchars($_POST["entryID"]);
//check if post variables are empty
if (empty ($entryID)) {
//kill process if so
die(header("location:http://www..com/money/?deleteFailed=true&reason=blank"));}
//check if strings contain numbers
//if (!is_numeric($bookingID)){
//die(header("location:http://www..com/money/?deleteFailed=true&reason=number"));}
//function to strip input data of bad inputs
function clean_input($data) {
return preg_replace('/[^A-Za-z0-9\-]/', '', $data); // Removes special chars.
}
//delete from table
$sql = "DELETE FROM moneys
WHERE entryID ='$entryID'";
//return error message if SQL fails
if ($conn->query($sql) === FALSE) {
header("Location: http://.com/money/?sqlFailed=true");
} else {
//return to page
$conn->close();
exit(header("location:http://www..com/money"));
}
具体做法是: $ conn->查询($ SQL)
据我所知,它并没有将$ conn变量识别为一个对象,但令人困惑的部分是这个确切的代码在网站的其他部分工作,只有当我在数据库中添加或删除内容时才会这样做,如果我只是返回行$ conn变量似乎工作正常。
db连接代码曾经在每个PHP文件中,我删除它并创建了包含文件以获取连接细节,这是我唯一改变的,所有这些都用于完美地工作。
答案 0 :(得分:-1)
Neil:“致命错误:在非对象上调用成员函数query()”
此问题表示您的连接未正确实例化。
您的错误检查代码不正确:
//This won't work
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
使用此:
if (!$conn) {
die('Error connecting to mysql. Error code: '. mysqli_connect_error());
}