Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PDO][MySQL 5] Czy PDO współpracuje z MySQL 5?
Forum PHP.pl > Forum > PHP
Martio
Czy PDO współpracuje z MySQL 5? W manualu można przeczytać: "PDO_MYSQL is a driver that implements the php Data Objects (PDO) interface to enable access from php to MySQL 3.x and 4.x databases".

Mam serwer na ForAll i poniższy skrypt:

  1. <?php
  2. $db = new PDO('mysql:dbname=xxxxx; host=mysql.forall.pl', 'xxxxx', 'xxxxxxx');
  3. $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  4. $db->exec('SET NAMES "utf8"');
  5.  
  6. try {
  7. $stmt = $db->prepare('SELECT * FROM partner ORDER BY RAND() LIMIT 4');
  8. $stmt->execute();
  9. $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
  10. } catch (PDOException $e) {
  11. echo $e->getMessage();
  12. }
  13. ?>


i wyświetla mi się następujący komunikat: "SQLSTATE[HY000]: General error: 2036". Zresztą na każdym SELEC-ie wyskakuje ten błąd.
MMP
Query zamiast prepare.
z3L
Tak współpracuje.
eai
też miałem taki błąd, ale powodem była kolumna, pole typu decimal(3,2) jak zmieniłem na float błąd zniknął. Nie wiem od czego to zależy bo na localu miałem ok, a problem wystąpił na nazwa.pl
specialplan
Na nazwie często miałem General Error. Jest to spowodowane faktem, iż mają skompilowane php 4 i 5 działające obok siebie i PDO głupieje czasem na ich konfiguracji. Raz nawet chcieli mi oddawać pieniądze za serwer, bo stwierdzili, że to ich wina, ale nie mogą zmienić ustawień PHP5, ponieważ serwer nie jest dedykowany i wypłynęłoby to na innych klientów. Znalazłem jednak rozwiązanie:

  1. <?php
  2. $this->sql->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.