2017-02-21 1 views
0

Ich versuche, MSSQL für PHP 7 auf einem 32-System (Ubuntu, 32-Bit) zu finden. Aber wenn ich versuche, die Installationsanweisung zu befolgen (https://github.com/Microsoft/msphpsql), scheint es, dass es nur für 64-Bit-Systeme ist?MSSQL und PHP 7 (32-Bit-System)

Soweit ich sehen kann, gibt der Befehl curl https://packages.microsoft.com/config/ubuntu/16.04/prod.listarch=amd64 zurück. Ist es möglich, es in 32 Bits/i386 zu bekommen?

Danke für jede Hilfe!

EDIT: Sieht so aus, als ob ich sudo apt-get install php7.0-sybase als Backup-Lösung verwenden kann, wenn ich es nicht zur Arbeit bekomme.

Antwort

1

Dies löste das Problem für mich:

sudo apt-get install php7.0-sybase 

Wie ich UTF-8-Codierung benötigen hatte ich zum ersten Mal die Version des tds zu ändern:

sudo vim /etc/freetds/freetds.conf 

Finde

[global] 
    # TDS protocol version 
; tds version = VERSION_NUMBER 

Setzen Sie die aktuelle Versionsnummer auf mindestens 7.0 und entfernen Sie ; vom Anfang der Zeile. Um UTF-8 global zu setzen, fügen Sie folgende Werte hinzu:

client charset = UTF-8 

unter der gerade eingestellten Version.

Restart php-fpm:

sudo service restart php7.0-fpm restart 

Wie ich Nginx verwenden neu gestartet ich, dass gerade auch sicher zu sein. versuchen nun eine mssql Verbindung hinzufügen:

$this->connection = new PDO('dblib:host='.$this->hostname.':'. 
          $port.';dbname='.$this->db_name.';charset=UTF-8' 
          ,$username, $password); 

Notiere die charset=UTF-8 Teil. Dies kann entfernt werden, aber wenn Sie den Client-Zeichensatz nicht in der Konfigurationsdatei einstellen, ist dies ein anderer Ort, wo Sie ihn einstellen können. Wenn Sie den Zeichensatz in der Verbindungszeichenfolge ändern, wird der globale Wert überschrieben.

Grüße!