Intereting Posts

Что Apache должен поддерживать как mysqli, так и PDO?

Я рассматриваю возможность изменения кода PHP для использования PDO для доступа к базе данных вместо mysqli (поскольку синтаксис PDO имеет больше смысла для меня и является агностиком базы данных). Для этого мне нужно, чтобы оба метода работали, пока я делаю переход.

Моя проблема заключается в следующем: до сих пор один или другой метод приведет к сбою Apache .

Сейчас я использую XAMPP в Windows XP и PHP версии 5.2.8. Mysqli отлично работает, и так получается:

 $dbc = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password); echo 'Connected to database'; $sql = "SELECT * FROM `employee`"; 

Но эта строка приводит к сбою Apache:

 $dbc->query($sql); 

Я не хочу переделывать всю установку Apache или XAMPP, но я бы хотел, чтобы PDO работал. Поэтому я попробовал обновить libmysql.dll отсюда , так как oddvibes рекомендуется здесь . Это заставило мой простой запрос PDO работать, но затем mysqli запросы разбили Apache.

(Я также попробовал следующее предложение, чтобы обновить php_pdo_mysql.dll и php_pdo.dll , без каких-либо последствий).

Прецедент

Я создал этот тестовый скрипт для сравнения PDO и mysqli. Со старой копией libmysql.dll он $use_pdo если $use_pdo является истинным и не является, если он является ложным. С новой копией libmysql.dll все наоборот.

 if ($use_pdo){ $dbc = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password); echo 'Connected to database<br />'; $sql = "SELECT * FROM `employee`"; $dbc->query($sql); foreach ($dbc->query($sql) as $row){ echo $row['firstname'] . ' ' . $row['lastname'] . "<br>\n"; } } else { $dbc = @mysqli_connect($hostname, $username, $password, $dbname) OR die('Could not connect to MySQL: ' . mysqli_connect_error()); $sql = "SELECT * FROM `employee`"; $result = @mysqli_query($dbc, $sql) or die(mysqli_error($dbc)); while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) { echo $row['firstname'] . ' ' . $row['lastname'] . "<br>\n"; } } 

Что нужно Apache для поддержки обоих методов запроса к базе данных?