У меня возникла проблема с моим подготовленным массивом результатов SELECT, не содержащим фактических значений столбца. Я знаю, как получить данные из базы данных sql с помощью Java, однако у меня возникают проблемы с PHP PDO. Я подключен к удаленной базе данных AWS, которая, как я знаю, работает. Вот код:PHP PDO MySQL массив возвращает только имена столбцов
$conn = new PDO($dsn, $username, $password);
//echo "Test";
Здесь я хочу, чтобы получить все данные столбца
$sth = $conn->prepare("SELECT 'id', 'short-des', 'full-des', 'image-urls', 'date-created' FROM projects");
$sth->execute();
Я поместил PDO :: FETCH_BOTH, PDO :: FETCH_ASSOC, PDO :: FETCH_COLUMN. Результат в конце этого сообщения является результатом того, что я оставляю пробел fetchall() пустым. Когда я вставляю какой-либо из PDO :: styles, значения не возвращаются. Я выполнил другие сценарии, такие как использование var_dump вместе со стилями в заявлении выборки, которые предоставляют фактические результаты, но нет фактических значений, которые содержат столбцы.
$row = $sth->fetchAll();
echo "<br>" . $row[0] . "<br>";
echo "<br>" . $row[1] . "<br>";
$column1 = $row[0];
$column2 = $row[1];
for($i = 0; $i < 5; $i++){
echo " " . $column1[$i];
$var = $column1[$i];
echo " = " . $var . " , ";
}
for($i = 0; $i < 5; $i++){
echo " " . $column2[$i];
$var = $column2[$i];
echo " = " . $var . " , ";
}
Это полученный текст:
64-bitPDO доступна
Массив
Массива ID = идентификатор, короткий дез = короткий дез, полный дез = full-des, image-urls = image-urls, date-created = date-created, id = id, short-des = short-des, full-des = full-des, image-urls = image-urls, date -created = создание даты, успешно подключено
Я угадываю его какую-то тупо простую причину, что он не показывает фактические значения. Я не знаком с концепцией «выборки», так как я прихожу из JDBC, однако я провел последние несколько дней, пытаясь заставить его работать безрезультатно. Я просмотрел похожие сообщения, такие как this post и this post, и this post. Кажется, что они обрабатывают несколько разные проблемы. К сожалению, я хочу использовать подготовленный оператор вместо фактического запроса.
К сожалению, это не решит проблему. Я использовал одинарные кавычки, потому что видел где-то, что вы можете использовать их, если имена столбцов содержат ключевые фразы. Слово «заполнять» и «дата» подсвечивается. $ sth = $ conn-> prepare ("SELECT id, short-des, full-des, image-urls, созданные по дате из проектов"); –
@JosiahL. Что делает 'var_dump ($ row);' output с этим изменением? Фактически, вы используете обратный ход 'not '. Попробуйте это с помощью backtick now. – imtheman
Он ничего не выводит. Однако это то, что он выводит с одинарными кавычками: array (2) {[0] => array (10) {["id"] => string (2) "id" [0] => string (2) " id "[" short-des "] => string (9)" short-des "[1] => string (9)" short-des "[" full-des "] => string (8)" full- des "[2] => string (8)" full-des "[" image-urls "] => string (10)" image-urls "[3] => string (10)" image-urls "[" (12) «date-created» [4] => string (12) «date-created»} [1] => array (10) {["id"] => string (12) 2) «id» [0] => строка (2) «id» [«short-des»] => строка (9) «short-des» [1] => строка (9) «short-des» [ "full-des"] => string (8) –