在PHP和SQL服务器之间创建单独连接的最佳方法是什么?(两个服务器:服务器一个SQL和服务器b PHP) 注意我用wamp。
我阅读了下面的一些文章 ,但我想知道是否有 新主意?
我测试了这个完美运行的代码:
try{
$user = 'user';
$password = 'pass';
$server="localhost";//or server IP
$database="database";
$conn = odbc_connect("Driver={SQL Server};Server=$server;Database=$database;", $user, $password);
} catch (PDOException $e) {
echo "Failed : " . $e->getMessage() . "\n";
exit;
}
答案 0 :(得分:1)
从PHP手册:http://php.net/manual/en/pdo.construct.php
示例#1通过驱动程序调用创建PDO实例
<?php
/* Connect to a SQL Server database using driver invocation */
$dsn = "sqlsrv:Server=12345abcde.database.windows.net;Database=testdb", "UserName@12345abcde", "Password";
try {
$dbh = new PDO($dsn);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
只需将HOST ip更改为mysql服务器的IP和端口。
答案 1 :(得分:1)
我使用PDO_ODBC方法:
1-在具有wamp的服务器上安装ODBC并在您的wamp上启用PHP_PDO_ODBC扩展
2-使用支持UTF-8的代码:
try{
$hostname = "IP";
$dbname = "database";
$username = "username";
$pw = "password";
$pdo = new PDO ("odbc:Driver={SQL Server Native Client 10.0};Server=$hostname;Database=$dbname; Uid=$username;Pwd=$pw;");
} catch (PDOException $e) {
echo "Failed : " . $e->getMessage() . "\n";
exit;
}
$query = $pdo->prepare("select field_name from table");
$query->execute();
for($i=0; $row = $query->fetch(); $i++){
echo iconv("CP1256","UTF-8", $row['field_name'])."<br>";
}
3-用你的物品替换这些物品:
IP-数据库的用户名 - 密码的field_name表
4-有时您需要使用“SQL SERVER”而不是“SQL Server Native Client 10.0”,有时您需要使用“IP,端口”而不是“IP”,有时您需要使用“ISO-8859-6”代替“CP1256”。