Php-скрипт отлично работает с ручным вводом, но не если я использую переменную $_postApache

Ответить Пред. темаСлед. тема
Anonymous
 Php-скрипт отлично работает с ручным вводом, но не если я использую переменную $_post

Сообщение Anonymous »

У меня есть PHP-скрипт для получения записи из таблицы базы данных, и я использую для этого PDO. Если я использую следующий код, я получаю массив результатов JSON, как и ожидалось. Если я изменю переменную на пост-переменную, это не сработает. В чем может быть проблема?
Это часть кода, написанная на языке JavaScript. При отладке я вижу идентификатор 11, а затем результат представляет собой пустой массив, и это тот же номер, когда я запускал скрипт без переменной post.

Код: Выделить всё

$.ajax({
url: "repos/getEntryById.php",
type: "post",
contentType: "json",
data: {
"id": id
},
success: function(results) {
if (results != null && results.length > 0) {
var row = results[0];
...
}
}
});

Сценарий PHP, который использует JavaScript, следующий: и функция скрипта репозитория следующая:

Код: Выделить всё

function getEntryById($id) {
if (isset($id)) {
$sql = "SELECT t.id, t.transaction_date, t.description, l.entry_type, l.amount, at.name AS category, at.id AS cat_id FROM transactions AS t JOIN ledger_entries AS l ON t.id = l.transaction_id JOIN accounts AS a ON a.id = l.account_id JOIN account_types AS at ON  at.id = a.account_type WHERE l.id = ?";
$statement = $this->conn->prepare($sql);
$statement->bindParam(1, $id);
$statement->execute();
$output = array();
while($row = $statement->fetch()) {
$output[] = $row;
}
return $output;
}
}
Это должен быть ожидаемый результат.
[{"id":11,"0":11,"transaction_date":"2024- 04-10 00:00:00","1":"2024-04-10 00:00:00","description":"что-то","2":"что-то","entry_type":2," 3":2,"amount":"2.50","4":"2.50","category":"Расходы","5":"Расходы","cat_id":5,"6":5}]
В чем может быть проблема?
Я запустил скрипт из командной строки с $id, установленным в 11. Он возвращает результаты:
В чем может быть проблема?
Я запустил сценарий из командной строки с $id, установленным в 11. Он возвращает результаты:
В чем может быть проблема?
Я запустил сценарий из командной строки с $id, установленным в 11. Он возвращает результаты:
В чем может быть проблема?
Я запустил сценарий из командной строки с $id, установленным в 11. Он возвращает результаты:
p>
[{"id":11,"0":11,"transaction_date":"2024-04-10 00:00:00","1":"2024-04-10 00:00:00","description":"что-то","2":"что-то","entry_type":2,"3":2,"сумма":"2,50","4":"2,50" ,"category":"Расходы","5":"Расходы","cat_id":5,"6":5}]
Я знаю, что скрипт подключается к базе данных и успешно извлекает строку. Это работает, если я преобразую целое число в строку, и это то, что я ожидаю передать ему как переменную сообщения. Все это работает на Raspberry Pi, как на сервере Apache, так и на сервере mariadb, но не на одном и том же Pi. Это также в ОС Debian. Вероятно, это что-то простое, и я это упускаю из виду.
В журналах Apache содержится предупреждение о неопределенном ключе массива «id» в строке 3 сценария.

Подробнее здесь: https://stackoverflow.com/questions/783 ... t-variable
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Apache»