Почему этот код pdo :: mysql разбивается на окна?

Почему этот код pdo :: mysql разбивается на окна ???

<?php $username = "root"; $password = ""; try { $dsn = "mysql:host=localhost;dbname=employees"; $dbh = new PDO($dsn, $username, $password); $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected to database<br />" ; $dbh->exec("DROP TABLE IF EXISTS vCard;"); $dbh->exec("DROP TABLE IF EXISTS emp;"); $table = "CREATE TABLE vCard( id INT(4) NOT NULL PRIMARY KEY, firstName VARCHAR (255), lastName VARCHAR (255), office VARCHAR (255), homePh VARCHAR (13), mobilePh VARCHAR (13))"; $dbh->exec($table); $dbh->beginTransaction(); $dbh->exec("INSERT INTO vCard(id, firstName, lastName, office, homePh, mobilePh) VALUES (4834, 'Randy', 'Lewis', 'SR. Front End Developer', '631-842-3375', '917-435-2245');"); $dbh->exec("INSERT INTO vCard(id, firstName, lastName, office, homePh, mobilePh) VALUES (0766, 'Frank', 'LaGuy', 'Graphic Designer', '631-789-8244', '917-324-9897');"); $dbh->exec("INSERT INTO vCard(id, firstName, lastName, office, homePh, mobilePh) VALUES (6684, 'Donnie', 'Dolemite', 'COO', '631-789-9482', '917-234-1222');"); $dbh->exec("INSERT INTO vCard(id, firstName, lastName, office, homePh, mobilePh) VALUES (8569, '', 'McLovin', 'Actor', '631-842-9786', '917-987-8944');"); $dbh->commit(); echo "Data entered successfully<br/><br/>"; $sql = "SELECT * FROM vCard"; // WHERE firstName = 'Donnie'"; $results = $dbh->query($sql); foreach ($results as $id){ echo "SSN: ". $id['id']." "; echo "First Name: ". $id['firstName']." "; echo "Last Name: ". $id['lastName']."<br/>"; } } catch (PDOException $e) { echo "Failed: " . $e->getMessage(); $dbh->rollback(); } ?> 

в основном эта строка кода – это то, что приводит к сбою Apache.

  $sql = "SELECT * FROM vCard"; 

Если я попытаюсь выбрать одно значение, например «id», это будет … когда я попытаюсь выбрать более одного значения «*», он сработает ??????

Solutions Collecting From Web of "Почему этот код pdo :: mysql разбивается на окна?"

Правильный способ – перекомпилировать модули mysqli mysqli и pdo_mysql php с хорошими заголовками mysql (из источников mysql)

Но настройка хорошей среды для разработчиков сложна (Windows SDK, командная строка VC6 и все необходимые библиотеки)

На самом деле, есть версии протокола (вы можете видеть в заголовках mysql, файл с именем version.h).

Я делаю это для своего пакета WAMP под названием EWS – Easy Web Server для каждой новой версии

Единственное решение, которое я нашел:

Установите пакет LibMySQL.DLL FROM 5.0.51a (работающий с последней версией MySQL версии 5.1.44)

http://www.netfulvpc.fr/files/libmysql_dll.zip

Хорошо, у меня очень плохое, но рабочее решение: p)

Откройте ext \ php_pdo_mysql.dll с помощью Hex-редактора

Найдите смещение «83 C3 50» 0x000024d5 (в php 5.2.12 vc6)

Заменить на 83 C3 "54"

Проблема заключается в плохом размере структуры … (struct pdo_column_data)

Я попытался исправить это в libmysql.dll, но этот сбой php_mysqli;)

То же самое происходит с Apache2 PHP 5.2.12 / LibMySQL 5.1.44 и 5.1.42 … с OllyDBG, мы видим, что сбой происходит в php_pdo_mysql

после анализа имени первого столбца … я вижу первый столбец «ID_Utilisateur» в стеке

рядом с "ext \ pdo_mysql \ mysql_statement.c"

LibMySQL – хороший (php dir), все здесь компилируется VC6 …

 <?php $dbh = new PDO('mysql:host=127.0.0.1;port=3306;dbname=uba_dev','root',''); echo "ok"; $dbh->exec('SET CHARACTER SET latin1'); echo "ok"; $stmt = $dbh->query("select * from utilisateurs"); <<< CRASH HERE ... 

авария на eip 002C249A