Я запускаю PHP 5.4.4 на своем сервере, скомпилированный с ./configure
. У меня PDO с драйвером SQLite 3.7.7.1. Я создал следующие таблицы.PHP PDO SQLite Driver возвращает Duplicate Date
CREATE TABLE IF NOT EXISTS
login (
id PRIMARY KEY ON CONFLICT REPLACE,
given_name,
family_name,
gender
);
CREATE TABLE IF NOT EXISTS
address (
id,
street,
city,
state,
zip,
FOREIGN KEY(id) REFERENCES login(id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS
certification (
id,
certification,
certification_expiration,
FOREIGN KEY(id) REFERENCES login(id) ON DELETE CASCADE
);
И этот вид.
CREATE VIEW "members" AS SELECT
login.id, login.given_name, login.family_name, login.gender,
address.street, address.city, address.state, address.zip,
certification.certification, certification.certification_expiration
FROM
login, address, certification
WHERE
login.id = certification.id
AND
login.id = address.id
Я запрашивая мнение так:
<?php foreach ($sql->query('SELECT * FROM members;') as $row): ?>
<tr>
<?php foreach ($row as $index => $col): ?>
<td><?=$index;?>.<?=$col;?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
И это производит вывод, как это.
<tr>
<td>id.123456789</td>
<td>0.123456789</td>
<td>given_name.Mark</td>
<td>1.Mark</td>
<td>family_name.Tomlin</td>
<td>2.Tomlin</td>
<td>gender.Male</td>
<td>3.Male</td>
<td>street.1 Some Lane</td>
<td>4.1 Some Lane</td>
<td>city.Anywhere</td>
<td>5.Anywhere</td>
<td>state.NY</td>
<td>6.NY</td>
<td>zip.12345</td>
<td>7.12345</td>
<td>certification.AEMT-P</td>
<td>8.AEMT-P</td>
<td>certification_expiration.2015-07-31</td>
<td>9.2015-07-31</td>
</tr>
Я хотел бы знать, почему это дает мне id.
и 0.
и given_name.
и 1.
, и есть все, что я могу сделать фильтр это поведение из запроса? Я бы хотел получить только id.
или просто 0.
, но не оба типа.
Вы можете начать здесь: http://www.php.net/manual/en/pdostatement.fetch.php 'PDO :: FETCH_BOTH (по умолчанию): возвращает массив, индексированный как с именем столбца, так и с номером столбца с номером 0 как возвращено в вашем результирующем наборе' – biziclop