Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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中对布尔值调用成员函数fetch_row()_Php_Mysql_Sql_Mysqli - Fatal编程技术网

未捕获错误:在基于|套接字连接的PHP中对布尔值调用成员函数fetch_row()

未捕获错误:在基于|套接字连接的PHP中对布尔值调用成员函数fetch_row(),php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我的一个PHP文件中总共有三个函数。我的第一个功能工作正常。第二个和第三个函数只是表名不同,其他都可以。当我运行第二个或第三个函数时,会出现如下错误 Uncaught Error: Call to a member function fetch_row() on boolean in <?php require_once("includes/conf.php"); function getAllNumbers() { global $conn; $sql = "SE

我的一个PHP文件中总共有三个函数。我的第一个功能工作正常。第二个和第三个函数只是表名不同,其他都可以。当我运行第二个或第三个函数时,会出现如下错误

Uncaught Error: Call to a member function fetch_row() on boolean in 
<?php
require_once("includes/conf.php");


function getAllNumbers() {
    global $conn;
    $sql = "SELECT number from number_list WHERE server=1";
    $result = $conn->query($sql);
    $data = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($data, $row[0]);
        }
    }
    $response["data"] = $data;
    return $response;
}

function getNewNumbers() {
    global $conn;
    $sql = "SELECT number, id from new_numbers WHERE server = 1";
    $result = $conn->query($sql);
    $newData = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($newData, $row[0]);
        $id = $row[1];
        $delete = "DELETE number from new_numbers WHERE id = $id";
        $result = $conn->query($delete);

        }
    }
    $response["newData"] = $newData;
    return $response;
}

function getDeleteNumbers() {
    global $conn;
    $sql = "SELECT number, id from delete_numbers WHERE server = 1";
    $result = $conn->query($sql);
    $deleteData = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($deleteData, $row[0]);
        $id = $row[1];
        $delete = "DELETE number from delete_numbers WHERE id = $id";
        $result = $conn->query($delete);

        }
    }
    $response["deleteData"] = $deleteData;
    return $response;
}

?>
最后两个函数的每一行下面都有错误

while($row = $result->fetch_row()) {
我已经测试了来自phpmyadmin的所有查询,它的工作状态良好,没有任何问题

我的完整PHP文件如下所示

Uncaught Error: Call to a member function fetch_row() on boolean in 
<?php
require_once("includes/conf.php");


function getAllNumbers() {
    global $conn;
    $sql = "SELECT number from number_list WHERE server=1";
    $result = $conn->query($sql);
    $data = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($data, $row[0]);
        }
    }
    $response["data"] = $data;
    return $response;
}

function getNewNumbers() {
    global $conn;
    $sql = "SELECT number, id from new_numbers WHERE server = 1";
    $result = $conn->query($sql);
    $newData = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($newData, $row[0]);
        $id = $row[1];
        $delete = "DELETE number from new_numbers WHERE id = $id";
        $result = $conn->query($delete);

        }
    }
    $response["newData"] = $newData;
    return $response;
}

function getDeleteNumbers() {
    global $conn;
    $sql = "SELECT number, id from delete_numbers WHERE server = 1";
    $result = $conn->query($sql);
    $deleteData = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($deleteData, $row[0]);
        $id = $row[1];
        $delete = "DELETE number from delete_numbers WHERE id = $id";
        $result = $conn->query($delete);

        }
    }
    $response["deleteData"] = $deleteData;
    return $response;
}

?>
表2新的联合国数字

id  int(11) NO  PRI NULL    auto_increment  
number  varchar(50) NO      NULL        
server  int(10) NO      0   
表2.1.1.1删除所有数字

id  int(11) NO  PRI NULL    auto_increment  
number  varchar(50) NO      NULL        
server  int(10) NO      0   
我应该清楚,我每xx分钟从基于套接字连接的PHP文件调用一次这些函数,该文件一直在命令行中24/7运行。我想这是因为需要你一次。如果有人能给我提示解决它,请告诉我。 谢谢

这是错误

$result=$conn->query($delete)

用这个代替

<?php
require_once("includes/conf.php");


function getAllNumbers() {
    global $conn;
    $sql = "SELECT number from number_list WHERE server=1";
    $result = $conn->query($sql);
    $data = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($data, $row[0]);
        }
    }
    $response["data"] = $data;
    return $response;
}

function getNewNumbers() {
    global $conn;
    $sql = "SELECT number, id from new_numbers WHERE server = 1";
    $result = $conn->query($sql);
    $newData = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($newData, $row[0]);
        $id = $row[1];
        $delete = "DELETE number from new_numbers WHERE id = $id";
        $deleted = $conn->query($delete);

        }
    }
    $response["newData"] = $newData;
    return $response;
}

function getDeleteNumbers() {
    global $conn;
    $sql = "SELECT number, id from delete_numbers WHERE server = 1";
    $result = $conn->query($sql);
    $deleteData = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($deleteData, $row[0]);
        $id = $row[1];
        $delete = "DELETE number from delete_numbers WHERE id = $id";
        $deleted = $conn->query($delete);

        }
    }
    $response["deleteData"] = $deleteData;
    return $response;
}

?>

错误状态为fetch_行正在获取布尔值以执行操作。更改Sql查询

 function getAllNumbers() {
    global $conn;
    $sql = "SELECT number from number_list WHERE server='1'";
    $result = $conn->query($sql);
    $data = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($data, $row[0]);
        }
    }
    $response["data"] = $data;
    return $response;
}

function getNewNumbers() {
    global $conn;
    $sql = "SELECT number, id from new_numbers WHERE server = '1'";
    $result = $conn->query($sql);
    $newData = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($newData, $row[0]);
        $id = $row[1];
        $delete = "DELETE number from new_numbers WHERE id = '$id'";
        $result = $conn->query($delete);

        }
    }
    $response["newData"] = $newData;
    return $response;
}

function getDeleteNumbers() {
    global $conn;
    $sql = "SELECT number, id from delete_numbers WHERE server = '1'";
    $result = $conn->query($sql);
    $deleteData = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($deleteData, $row[0]);
        $id = $row[1];
        $delete = "DELETE number from delete_numbers WHERE id = '$id'";
        $result = $conn->query($delete);

        }
    }
    $response["deleteData"] = $deleteData;
    return $response;
}

此外,这种方法是对Sql注入的公开邀请。您应该使用准备好的语句

函数中有两个查询。您提到的行用于第二个查询,我认为它没有错误。您替换了$result变量,该变量包含select查询结果($result=$conn->query($sql);)在循环内,该变量成为下一个循环的布尔值。您应该给出另一个变量名,如$deleted=$conn->query($delete);阿普尔·古普塔编辑了我展示正确答案的帖子,回复的内容与我再次免费制作的作品相同