У меня возникли проблемы в этом, я хочу вернуть значение item_name.
$productnum = "1001";
$mysqli = new mysqli("localhost", "ewconline_db_user", "steve030405", "ewconline_db");
$result = $mysqli->query("SELECT * FROM `shop_products` WHERE `item_id` = '$productnum' ");
$row = $result->fetch_assoc();
$item_name = $row['item_name'];
$response = "{
'recipient':{
'id': $senderId
},
'message':{
'text': $item_name
}
}";
он, кажется, не получает значение и отправляет ответ пользователю.
и если я запускаю программу sql по другому адресу. это прекрасно работает.
Вы можете попробовать вот так
while ($row = $result->fetch_assoc()) {
$item_name = $row['item_name'];
}
Вы всегда должны проверять, удалось ли начать ваше соединение с самого начала. Поэтому после того, как вы создадите свой экземпляр mysqli, добавьте что-то вроде этого:
if (mysqli_connect_errno()) {
printf("Database connection failed: %s\n", mysqli_connect_error());
die(); // or throw an exception or whatever
}
Это должно сказать вам, почему не получают ожидаемый результат.
$mysqli = new mysqli("localhost", "ewconline_db_user", "steve030405", "ewconline_db");
$result = $mysqli->query("SELECT * FROM `shop_products` WHERE `item_id` = '".$productnum."'");
$row = $result->fetch_assoc();
$answer = $row['item_name'];
$response = [
'recipient' => [ 'id' => $senderId ],
'message' => [ 'text' => $answer ]
];
Я сделал это так, и это работает.
и использовал json_encode ($ response);