Php 什么';我的电报查询有什么问题吗?
它返回一个空数组。我想,这是我发送消息时没有内联按钮的主要原因。查询失败,因为Php 什么';我的电报查询有什么问题吗?,php,mysql,telegram,telegram-bot,Php,Mysql,Telegram,Telegram Bot,它返回一个空数组。我想,这是我发送消息时没有内联按钮的主要原因。查询失败,因为name是一个错误 修复方法是将关键字括起来,如下所示: public function createCityDialog() { $selectCity = "select name from telegramCity limit 6 offset 0"; $result = mysqli_query($this->connection, $selectCity); while ($row =
name
是一个错误
修复方法是将关键字括起来,如下所示:
public function createCityDialog() {
$selectCity = "select name from telegramCity limit 6 offset 0";
$result = mysqli_query($this->connection, $selectCity);
while ($row = mysqli_fetch_assoc($result)) {
/*
$this->buttons[] = [
'text' => $row["name"]
];*/
$this->buttons["text"] = $row["name"];
}
$this->telegramAPI->sendMessage($this->buttons, $this->chatID);
$this->telegramAPI->api("sendMessage", [
'chat_id' => $this->chatID,
'text' => 'Виберіть місто',
'reply_markup' => [
'inline_keyboard' => [
$this->buttons
]
]
]);
}
还有一部分是,如果有更多的结果,它不会被附加到数组中
$selectCity = "select `name` from telegramCity limit 6 offset 0";
您的注释代码也可以完成此任务。步骤1,诊断
var_dump($result)
@xorifese,我无法使用var_dump
,但我尝试在管理员$this->按钮[“text”]=$row[“name”]中进行此查询代码>需要是$this->按钮[“文本”][]=$row[“名称”];//使它成为一个数组来保存所有值,而不是最后一个值,这也是我的第一个想法,除了1个值之外。“内联键盘”有一些东西,但它是空的。像这样更改,是否会出现任何错误<代码>$result=mysqli_query($this->connection,$selectCity)或die(mysqli_error($this->connection))代码>我已经更改了它。将name
更改为districtName
和$this->按钮[“文本”][]=$row[“名称”]代码>。现在这个数组看起来像{“text”:[null,null,null,null,null,null]}
。但它不是空的:DI尝试了$this->buttons[][“text”]=$row[“name”]
并接收[{“text”:null},{“text”:null},{“text”:null},{“text”:null},{“text”:null},{“text”:null}]
这意味着$row[“name”]
的值是null
。也许可以诊断storejson\u encode($row)
并查看响应以了解您需要什么。我想,$row[“districtName”]
可以修复它。是的,我修复了它,现在接收到正确的数组,但无法使用内联按钮发送消息><没有错误
$this->buttons["text"][] = $row["name"];