Tengo un servidor Linux Debian 6, con Apache 2.2 y PHP 5.4 instalados. Necesito conectar mi aplicación con un MS SQL Server 2008.PHP 5.4 en Linux: cómo conectarse con MS SQL Server 2008?
Mi aplicación está usando Zend Framework 1.11 y el juego de caracteres UTF-8 (tendré usuarios de todos los lugares del mundo y pondrán los datos en su propio idioma).
FRIST, traté de usar el controlador ODBC de Microsoft SQL Server para Linux. que dice es sólo para Red Hat, pero sigue estas instrucciones para instalar:
http://www.codesynthesis.com/~boris/blog/2011/12/02/microsoft-sql-server-odbc-driver-linux/
podría conectar y hacer algunas selecciona en él, pero no pude insertar datos en él. Tengo un problema con los parámetros de enlace en las declaraciones de pdo.
Insertar datos como la siguiente no funcionaron:
$stmt = $conn->prepare("insert into mar_regions (name) values (:name)");
$resp = $stmt->execute(array(':name' => $param));
Pero si utilicé como el presente, funciona:
$stmt = $conn->prepare("insert into mar_regions (name) values ('".$param."')");
$resp = $stmt->execute();
Así que renunció a partir de este controlador, ya que mi solicitud no ZF 1.11 no funcionará si esto.
SEGUNDO, trato de usar el controlador PDO para FreeTDS. Este funciona bien y podría usarlo en mi aplicación ZF 1.11.
Pero luego, tengo un problema más: conjuntos de caracteres. configurar mi freetds.conf utilizar UTF-8, cambiar mis tablas para utilizar en restaurantes en vez de NVARCHAR y VARCHAR podría insertar datos UTF-8 como esta:
$stmt = $dbh->prepare("insert into mar_teste (name) values (N'ンから初・配信 € зеленый банан ÀÀÀÀáááááá')");
$resp = $stmt->execute();
Pero, en mi ZF 1.11, no puedo pasa este atributo 'N' en querys! Entonces mi aplicación aún no funcionó.
Como puedes ver, probé todo.
Así que mi pregunta es: ¿Cómo conectarse desde Linux, utilizando ZF 1.11 chatset UTF-8, en MS SQL Server 2008?