Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 准备功能使用错误?_Php_Function - Fatal编程技术网

Php 准备功能使用错误?

Php 准备功能使用错误?,php,function,Php,Function,任何人都知道我为什么会出现这个错误: Call to a member function prepare() on a non-object 对于此代码段: public function check_availability($dataID) { $query = "SELECT dump FROM dumps WHERE dump = '".$dataID."'"; if ($stmt = $mysqli->prepare($query)) { $

任何人都知道我为什么会出现这个错误:

Call to a member function prepare() on a non-object
对于此代码段:

public function check_availability($dataID) {

    $query = "SELECT dump FROM dumps WHERE dump = '".$dataID."'";
    if ($stmt = $mysqli->prepare($query)) {

        $stmt->execute();

        if($stmt->rowCount() > 0) {
            return FALSE;
        } else {
            return TRUE;
        }

        $stmt->close();
    }
} 
特别是这一行:

if ($stmt = $mysqli->prepare($query)) {
变量$mysqli不会出错,因为:

$mysqli = new mysqli($config['sql_hostname'], $config['sql_username'], $config['sql_password'], $config['sql_database']);
更新:

我在浏览器中调用此脚本:

define('SECURE', true);

include "storescripts/connect_to_mysql.php";

require 'AvailabilityChecker.php';

$config = array('DB' => $mysqli,
                'Table' => 'dumps',
                'Row' => 'dump',
                'Output' => true,
                'Format' => 'JSON');

$availabilityChecker = new AvailabilityChecker($config);

if($availabilityChecker->check_availability($_POST['dataID'])) {
    echo "ok";
} else {
    echo "not ok";
} 

$mysqli是在“connect_to_mysql.php”中定义的,因此?

您应该创建
mysqli
对象,并检查结果

$mysqli = new mysqli("localhost", "username", "password", "dbname");
if(!$mysqli)
{
   die("can not access the db");
}
然后你可以使用这个函数

$mysqli->prepare($query)

显然,
$mysqli
是错误的。您在哪里定义了
$mysqli
?请检查我更新的这个。你能看一看吗?不,你看了很多重复的@user2999787ehm中的一个,我已经创建了一个对象,你没有看到吗?在使用$mysqli之前,你应该使用if($mysqli){}检查它