php使用pdo连mssql数据库的问题 pdomssql 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 少了端口号,多百度或GOOGLE一下,百度上第一条就这个$dsn = "sqlsrv:server=localhost,1433;Database=bbb";try { $dbh = new PDO($dsn, 'sa', '123456'); //初始化一个PDO对象,就是创建了数据库连接对象$dbh } catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>");}echo '<pre>';print_r($dbh->query("select * from aaa where id=1")->fetchAll());echo '</pre>'; 需要端口號的么?寫法不對了。<?phpfunction connect($config=array()){ $dbhost = $config['dbhost']; $dbname = $config['dbname']; $dbuser = $config['username']; $dbpasswd = $config['password']; $pconnect = $config['pconnect']; $charset = isset($config['charset'])? $config['charset'] : ''; $dsn = "mysql:host=$dbhost;dbname=$dbname;"; try { $h_param = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, ); if($charset!=''){ $h_param[PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET NAMES '.$charset; #設置默認編碼 } if ($pconnect){ $h_param[PDO::ATTR_PERSISTENT] = true; } $conn = new PDO($dsn, $dbuser, $dbpasswd, $h_param); } catch (PDOException $e) { throw new ErrorException('Unable to connect to db server. Error:'.$e->getMessage(), 31); } return $conn;}$confg = array( 'dbhost' => 'localhost', 'dbname' => 'dbname', 'username' => 'admin', 'password' => '123456', 'pconnect' => 0, 'charset' => '');$dbh = connect($config);?> 端口号是必须的么?我看网上好多例子都没有写端口号。我加了端口号也试了,这回错误跟原来略有不同。错误提示:[08001][Microsoft][SQL Server Native Client 10.0]SQL Server 网络接口: 连接字符串无效 [87]。二楼的是连的mysql吧。 贴出你用 sqlser 函数时的连接代码 看錯了,原來是來呢mssql。看看這個能否解決http://blog.csdn.net/abandonship/article/details/7978904 你说的是sqlsrv吧?现在我的程序都是这种方式连接mssql数据库的。下面是测试代码:<?php$hostname = "192.168.10.25";$dbname = "test";$username = "web";$pwd = "123456";$connectionInfo = array("UID"=>$username, "PWD"=>$pwd, "Database"=>$dbname);$conn = sqlsrv_connect( $hostname, $connectionInfo);if( $conn == false){ echo "sqlsrv方式连接失败."; } else { echo "sqlsrv方式连接成功.";}?> 结果呢?你没说如果参数无误,分立函数练级没有问题,而 pdo 连接又问题那就是 pdo 的问题了你的是 PHP 5.2.6,但只有 PHP 5.3.6 及以后的 PDO 可以稳定工作 结果是sqlsrv方式连接成功。而且使用pdo mssql 的方式也能连接成功。 post提交中的变量赋值问题 求教如何改写URL 速求php语言生成无限级树和Excel的代码 $_FILES["file"]["name"]是不是不能作为变量值使用? 谁能帮我简明介绍下OpenSSL。不要复制的。并说一下怎么安装啊 执行sql语句失败Column 'id' in order clause is ambiguous php如何验证smtp信息的正确 【散分】exit()与die的区别 老问题重提!Mysql大数据量下的优化! 我的php.ini哪里配置错了 新手请教Ajax传多个值给php的问题 thinkphp 邮箱验证问题
try {
$dbh = new PDO($dsn, 'sa', '123456'); //初始化一个PDO对象,就是创建了数据库连接对象$dbh
} catch (PDOException $e) {
die ("Error!: " . $e->getMessage() . "<br/>");
}
echo '<pre>';
print_r($dbh->query("select * from aaa where id=1")->fetchAll());
echo '</pre>';
寫法不對了。<?php
function connect($config=array()){
$dbhost = $config['dbhost'];
$dbname = $config['dbname'];
$dbuser = $config['username'];
$dbpasswd = $config['password'];
$pconnect = $config['pconnect'];
$charset = isset($config['charset'])? $config['charset'] : ''; $dsn = "mysql:host=$dbhost;dbname=$dbname;";
try {
$h_param = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
);
if($charset!=''){
$h_param[PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET NAMES '.$charset; #設置默認編碼
}
if ($pconnect){
$h_param[PDO::ATTR_PERSISTENT] = true;
}
$conn = new PDO($dsn, $dbuser, $dbpasswd, $h_param);
} catch (PDOException $e) {
throw new ErrorException('Unable to connect to db server. Error:'.$e->getMessage(), 31);
}
return $conn;
}$confg = array(
'dbhost' => 'localhost',
'dbname' => 'dbname',
'username' => 'admin',
'password' => '123456',
'pconnect' => 0,
'charset' => ''
);$dbh = connect($config);
?>
我加了端口号也试了,这回错误跟原来略有不同。错误提示:[08001][Microsoft][SQL Server Native Client 10.0]SQL Server 网络接口: 连接字符串无效 [87]。二楼的是连的mysql吧。
看看這個能否解決http://blog.csdn.net/abandonship/article/details/7978904
<?php
$hostname = "192.168.10.25";
$dbname = "test";
$username = "web";
$pwd = "123456";
$connectionInfo = array("UID"=>$username, "PWD"=>$pwd, "Database"=>$dbname);
$conn = sqlsrv_connect( $hostname, $connectionInfo);
if( $conn == false){
echo "sqlsrv方式连接失败.";
} else {
echo "sqlsrv方式连接成功.";
}
?>
那就是 pdo 的问题了你的是 PHP 5.2.6,但只有 PHP 5.3.6 及以后的 PDO 可以稳定工作
而且使用pdo mssql 的方式也能连接成功。