Ваш echo
возвращает ошибку, потому что результатом ->query()
является не логическое значение, а скорее mysqli_result
.
Да, вы можете добавить эти результаты вместе, но вам определенно следует избегать этого (так как это приведет к неожиданным результатам).
Вероятно, вы захотите использовать fetch_row()
для получения результата запроса:
$result = $mysqli->query("SELECT room FROM rooms WHERE location='london' AND status='1'");
$london = $result->fetch_row();
echo $london[0]; // 2
$result = $mysqli->query("SELECT room FROM rooms WHERE location='york' AND status='1'");
$york = $result->fetch_row();
echo $york[0]; // 3
echo $london + $york; // 5
Обратите внимание, что я бы настоятельно рекомендовал вместо этого использовать подготовленные операторы , чтобы предотвратить SQL-инъекцию :
$country = "london";
$stmt = $mysqli->prepare("SELECT room FROM rooms WHERE location=? AND status=?");
$stmt->bind_param("si", $country, 1);
$stmt->execute();
$stmt->bind_result($name, $london_rooms);
echo $london_rooms; // 2
И вы даже можете объединить два запроса, используя строку с разделителями-запятыми рядом с IN()
, чтобы избежать необходимости дважды вызывать вашу базу данных:
$countries = ['london', 'york'];
$countriesString = implode($countries, ",");
$stmt = $mysqli->prepare("SELECT room FROM rooms WHERE location IN(?) AND status=?");
$stmt->bind_param("si", $countriesString, 1);
$stmt->execute();
$stmt->bind_result($name, $rooms);
echo $rooms; // 5