Когда я получаю строку из базы данных 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
поля ТЕКСТ в таблице.
Ваш 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
Других решений пока нет …