数据库连接并不总是有效

时间:2015-07-13 22:57:15

标签: php mysqli

我有一个问题,我的连接适用于某些事情但不适用于其他事情。 这是我的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文件中,我删除它并创建了包含文件以获取连接细节,这是我唯一改变的,所有这些都用于完美地工作。

1 个答案:

答案 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());
}