2016-07-15 18 views
0

ich bin neu über firebird. Ich versuche eine Verbindung zwischen PHP und Firebird herzustellen. Dies ist der Code:PHP-Firebird (ibase_connect = ZEICHEN SET iso-8859-1 ist nicht definiert)

$host='192.168.12.1:D:/DB/ALFABETA.FDB'; 
$username='john.doe'; 
$password='123456789'; 
$database='ALFABETA'; 

$dbh=ibase_connect($host,$username,$password) or die (ibase_errmsg()); 

$sth= ibase_query($dbh) or die (ibase_errmsg()); 

Aber nachdem ich den Code im Browser ausgeführt habe, kommt die Warnmeldung auf. Hilfe. Was sollte ich tun ?

Warnung Statement

Warnung: ibase_connect(): schlechte Parameter anhängen oder erstellen Datenbank CHARACTER SET iso-8859-1 nicht in /var/www/fortrainingcrud/connect_db definiert ist .php on line 7 schlechte Parameter auf anhängen oder Datenbank-Zeichensatz ISO-8859-1 erstellen ist nicht

definiert

Antwort

1

ich habe endlich die Antwort! Hier ist sie:

  1. In php.ini, i hinzufügen extension=php_interbase.dll
  2. Starten Sie den Apache-Dienst
  3. Der Code, den ich schreibe, habe vor, funktioniert gut
+0

Wenn dies das Problem wäre, würden Sie nicht ** Aufruf zu undefinierten Funktion ibase_connect() **? Wie kann 'ibase_connect()' ausgeführt werden, wenn die Erweiterung nicht geladen wurde? –

0

Sie aren‘ Wenn Sie den Verbindungszeichensatz setzen, erhalten Sie einen Fehler. Das deutet darauf hin, dass PHP den Wert von woanders nimmt und der erste Kandidat ist die ibase.default_charset Direktive. Sie können den aktuellen Wert mit var_dump(ini_get('ibase.default_charset')); oder einfach unter phpinfo() anzeigen.

Sie können die Direktive entweder selbst ändern oder, noch besser, die Codierung unter ibase_connect() angeben, damit Ihr Code nicht zufällig abhängig von der Serverkonfiguration bricht.

Wie über iso-8859-1, scheint es die passende Syntax für Firebird ist ISO8859_1 (vorausgesetzt, Sie wollen wirklich, dass Codierung).