У меня есть PHP-скрипт, который читает пользовательский ввод, который, в свою очередь, возвращает массив данных JSON на основе введенного значения.
Идея состоит в объединении двух таблиц Postgres вместе, а затем выберите все записи, в которых значение пользователя равно значению столбца uprn (где этот столбец является целым числом).
У меня есть аналогичный PHP-скрипт, который работает нормально, поэтому PHP и т.д. Настроены правильно, но при попытке этого кода он возвращает 500-Internal Server Error.
Правильно ли я назначил одинарные кавычки в правильных положениях как для моей записи запроса, так и для строк массива?
<?php
if (isset($_GET['query'])) {
// Connect to our database
$conn = pg_connect("host=myhost port=myport dbname=mydb user=myuser password=mypass");
// Retrieve the query
$query = $_GET['query'];
// Search the database for all similar items
$sql = pg_query($conn, "SELECT l.uprn, l.ward, r.ward, r.name FROM addresses.temp_addresses_plus_wards AS l LEFT JOIN council.councillors AS r ON l.ward = r.ward WHERE l.uprn = {$query}");
$array = array();
while ($row = pg_fetch_array($sql)) {
$address = array(
'ward' => $row['r.ward'],
'name' => $row['r.name']
);
array_push($array, $address);
}
sort($array);
$jsonstring = json_encode($array);
// Return the json array
echo $jsonstring;
}
?>
Я понял, что мне просто нужно удалить псевдоним таблицы для моего массива, и теперь он работает!