PDO fetchAll Results возвращает только одну проблему записи

Я разработал следующий скрипт на моем локальном хосте (используя wamp 2.2, apache 2.2.1 windows, php 5.3.9, mysql 5.5.20). Когда я загружаю скрипт на рабочий сервер (apache 2.2.29, unix, php 5.3.29, mysql 5.5.42)

Я заметил, что скрипт php + pdo не возвращает все извлеченные строки так же, как тот же скрипт, что и на моем локальном сервере.

Если я пытаюсь добавить экземпляр sql «order by», он хорошо работает на локальном сервере, но на производственном сервере полученная строка всегда одинакова.

Также попытался изменить порядок таблицы INNER JOIN, но с тем же результатом.
Есть какие-нибудь подсказки? Может быть, неправильный ВНУТРЕННИЙ РЕЙТИНГ

php + pdo:

$user = '';
$pass = '';
$dsn = 'mysql:host=myhost;dbname=mydbname;charset=utf8';

try {
$pdo = new PDO($dsn, $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Error: ' . $e->getMessage();
}

function Contents($id) {
global $pdo;
$stmt = $pdo->prepare('SELECT historia.id AS idhistoria, pub_us.comic, pub_us.id FROM historia INNER JOIN pub_us ON pub_us.historia = historia.id WHERE pub_us.comic = :id ORDER BY orden');
$stmt->execute(array(':id' => $id));
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt = null;
return $data;
}

$comicid = "fantasticfour/1/001";

$data = Contents($comicid);

foreach($data as $row) {

echo $row['idhistoria'];
echo " - ";
echo $row['comic'];
echo " - ";
echo $row['id'];

}

Структура таблицы:

Table structure for historia: id(text, primary key)
Table structure for pub_us: id(int,auto increment, primary key), comic(text), historia(text, related to table historia.id)

Полученные данные:

Results in local wamp:
|| idhistoria      || comic               || id    ||
|| fantfour-1-001b || fantasticfour/1/001 || 25356 ||
|| fantfour-1-001  || fantasticfour/1/001 || 16449 ||
|| fantfour-1-001a || fantasticfour/1/001 || 3772  ||

Results in server :
|| idhistoria      || comic               || id   ||
|| fantfour-1-001a || fantasticfour/1/001 || 3772 ||

0

Решение

Благодаря подсказке @rmertins я решил проблему.

Таблица «Historia» была с движком INNODB, а таблица «pub_us» была с MyISAM, поэтому различия между движками приводят только к одной строке.

Решено это смена двигателей на одинаковые (INNODB в данном случае)

Спасибо за комментарии и подсказки, я ожидаю, что это поможет кому-то еще!

0

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

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

По вопросам рекламы [email protected]