instalar - microsoft drivers for php for sql server
Conéctese a SQL Server a través de PDO utilizando el controlador de SQL Server (5)
Estoy intentando conectarme a una base de datos de SQL Server existente mediante PDO con los controladores proporcionados por Microsoft .
He visto ejemplos usando odbc, dblib, mssql, etc., sin embargo, creo que la cadena de conexión con estos controladores debería usar ''sqlsrv''?
¿Hay buenos ejemplos de cómo hacer esto correctamente? Si debo hacer esto a través de algún otro método, por favor hágamelo saber. ¡Gracias!
Bueno, eso es lo mejor de los PDOs, ya que es bastante fácil acceder a cualquier base de datos. Siempre que haya instalado esos controladores, debería poder simplemente hacer:
$db = new PDO("sqlsrv:Server=YouAddress;Database=YourDatabase", "Username", "Password");
Descubrí esto Bastante simple:
new PDO("sqlsrv:server=[sqlservername];Database=[sqlserverdbname]", "[username]", "[password]");
Esto me funciona, y en este caso fue una conexión remota: Nota: el puerto fue IMPORTANTE para mí
$dsn = "sqlsrv:Server=server.dyndns.biz,1433;Database=DBNAME";
$conn = new PDO($dsn, "root", "P4sw0rd");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "SELECT * FROM Table";
foreach ($conn->query($sql) as $row) {
print_r($row);
}
Tenga en cuenta que, según mi experiencia y también de otras ( PHP: ¿Por qué es más lento el nuevo controlador SQLSRV que el anterior controlador mssql? ), El uso de PDO_SQLSRV es mucho más lento que a través de PDO_ODBC.
Si desea utilizar el PDO_ODBC más rápido, puede utilizar:
//use any of these or check exact MSSQL ODBC drivername in "ODBC Data Source Administrator"
$mssqldriver = ''{SQL Server}'';
$mssqldriver = ''{SQL Server Native Client 11.0}'';
$mssqldriver = ''{ODBC Driver 11 for SQL Server}'';
$hostname=''127.0.0.1'';
$dbname=''test'';
$username=''user'';
$password=''pw'';
$dbDB = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;Database=$dbname", $username, $password);
try
{
$conn = new PDO("sqlsrv:Server=$server_name;Database=$db_name;ConnectionPooling=0", "", "");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
$e->getMessage();
}