我的一个php文件中总共有三个函数。我的第一个功能是工作正常。第二个和第三个函数只有表名不同,其他都可以。当我运行第二个或第三个函数时,它给我的错误如下
Uncaught Error: Call to a member function fetch_row() on boolean in
我的最后两个函数的下线都有错误。
while($row = $result->fetch_row()) {
我已经测试了所有来自phpmyadmin的查询,它工作正常,没有任何问题。
我的完整php文件如下所示
<?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;
}
?>
表号\u列表
id int(11) NO PRI NULL auto_increment
name varchar(50) NO NULL
number varchar(50) NO NULL
server int(10) NO 0
status int(1) NO -1
last_act timestamp NO CURRENT_TIMESTAMP
user_id int(11) NO MUL NULL
created_at timestamp NO CURRENT_TIMESTAMP
disable int(11) NO 0
notify int(1) NO 1
fcm varchar(500) NO NULL
新表\u编号
id int(11) NO PRI NULL auto_increment
number varchar(50) NO NULL
server int(10) NO 0
表删除\u编号
id int(11) NO PRI NULL auto_increment
number varchar(50) NO NULL
server int(10) NO 0
我应该清楚的是,我每xx分钟从基于socket连接的php文件调用一次这些函数,我一直在命令行中24/7运行这个文件。我想是因为需要你一次。如果有人能给我解决问题的提示,请告诉我。谢谢
2条答案
按热度按时间new9mtju1#
错误状态为fetch\ U row正在获取布尔值以执行操作。更改sql查询。
而且,这种方法是对sql注入的公开邀请。你应该使用事先准备好的陈述
des4xlb02#
这是错误
$result=$conn->query($delete);
改用这个