pdo — имена полей SQLite3, не распознаваемые PHP в ассоциативном массиве набора результатов

Когда я получаю строку из базы данных SQLite3, используя по умолчанию fetch() В режиме как ассоциативных, так и числовых индексов числовой индекс работает, но я получаю «неопределенный индекс», если пытаюсь использовать ассоциативный индекс. То есть,

$timeReadBack = $resultArray2[0];

дает правильный результат, но

$timeReadBack = $resultArray2['startTime'];

дает «неопределенный индекс».

И я положительный У меня правильное имя поля.

Вот вся последовательность:

$result2 = $db->prepare( 'SELECT parameterValue FROM CurrentState WHERE parameterName = ?;' );
$result2->bindValue(1,'startTime');
$selectStatement = $result2->execute();
$resultArray2 = $result2->fetch();
$timeReadBack = $resultArray2[0];

parameterName а также parameterValue поля ТЕКСТ в таблице.

-1

Решение

Ваш SELECT не содержит поле с именем startTime. Итак $resultArray2 будет содержать только ключи из полей SELECT (только parameterValue).

SELECT parameterValue FROM CurrentState WHERE parameterName = ?

Кроме того, вы используете startTime привязать параметр. Это означает, что startTime это значение, а не имя поля. Таким образом, вы не можете получить доступ к столбцу по значению, только для имени поля parameterValue

$result2 = $db->prepare( 'SELECT parameterValue FROM CurrentState WHERE parameterName = ?;' );
$result2->bindValue(1,'startTime');
$selectStatement = $result2->execute();
$resultArray2 = $result2->fetch();
$timeReadBack = $resultArray2[0];
$timeReadBack = $resultArray2['parameterValue']; // 'startTime' is a value
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector