PHP 板


LINE

看板 PHP  RSS
版上各位大大午安,大家好,打给厚,胎嘎猴 情况是这样 鲁叔我一直以来都是使用Linux虚拟主机(X朵)使用PHP及MySQL的环境编写网站 最近被要求要去另一台虚拟主机的Windows Server + SQL 2012取资料,甚至覆写资料 一开始鲁叔没想太多,因为PHP版本太旧,就用mssql_connect,发现连不上 找了找资料,改用ODBC_connect,咦?还是连不上 会不会是SQL这端设定问题?参考了这篇文章对SQL连线的诊断 : http://bit.ly/31xyPAs 应该是能外部连线,那改试试PDO,一样不行 看许多人用sqlsrv成功连线,无奈Linux这端的主机只能使用Cpanel做操作 再加上之前网站一直是用PHP 5.6的古董函式 mysql_query,若改为7.0+版本网站会炸裂 於是只能不断在mssql_connect及odbc_connect来回尝试 示意图大概如下: https://i.imgur.com/3o6MsI4.jpg (PHP mssql, odbc)
https://i.imgur.com/dTqcJlO.jpg (Windows ODBC, SQL Server property)
当使用mssql_connect时,错误讯息为: Warning: mssql_connect(): Unable to connect to server: xxx.xx.xxx.xx in /home2/xxxxxxxx/xxxxxx/SQLtest.php on line 9 Could not connect: 当使用odbc_connect时,也尝试调用以下三个不同的$driver: $driver = '{SQL Server Native Client 11.0}'; $driver = '{SQL Server Native Client 10.0}'; $driver = '{SQL Server}'; $server = 'xxx.xx.xxx.xx'; $database = 'TEST'; $user = 'sa'; $password = '123'; $connection = odbc_connect("Driver=$driver;Server=$server;Database=$database;", "$user", "$password"); 错误讯息长的差不多: Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found, SQL state 01000 in SQLConnect in /home2/xxxxxxxx/xxxxxx/SQLtest.php on line 25 Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Can't open lib 'SQL Server Native Client 10.0' : file not found, SQL state 01000 in SQLConnect in /home2/xxxxxxxx/xxxxxx/SQLtest.php on line 25 Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Can't open lib 'SQL Server Native Client 11.0' : file not found, SQL state 01000 in SQLConnect in /home2/xxxxxxxx/xxxxxx/SQLtest.php on line 25 尝试使用odbc的时候: $driver='{ODBC Driver 11 for SQL Server}'; $dsn='xxx.xx.xxx.xx'; $hostname='server'; $database='TEST'; $username='sa'; $password='123'; $conn = new PDO("odbc:$dns"); $conn = new PDO("dblib:host=$hostname;dbname=$database", $username,$password); $conn = new PDO("sqlsrv:Server=$hostname;Database=$database", $username, $password); $conn = new PDO("odbc:Driver=$driver;Server=$hostname;Database=$database", $username, $password); 错误讯息为: Notice: Undefined variable: dns in /home2/xxxxxxxx/xxxxxx/SQLtest.php on line 36 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IM002] SQLConnect: 0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified' in /home2/xxxxxxxx/xxxxxx/SQLtest.php:36 Stack trace: #0 /home2/xxxxxxxx/xxxxxx/SQLtest.php(36): PDO->__construct('odbc:') #1 {main} thrown in /home2/xxxxxxxx/xxxxxx/SQLtest.php on line 36 mssql_connect的错误讯息很单纯,就连不上 odbc_connect的错误讯息比较丰富点,无法找到lib 而PDO odbc的错误讯息,似乎在说Driver不对应 看很多文章都说改用sqlsrv,去微软下载sqlsrv driver,安装到PHP资料夹,再改用 sqlsrv就可以成功连线SQL,问题在於虚拟主机没有这样操作的空间 在这问题上打转了两个多星期,希望版友们能指点鲁叔一二,若有其它资讯不足的部分也 望请各位不吝指教,鲁叔会尽可能补全供各位参考。 -- 我打江狗 都不带重击跟打野刀 改带虚弱与黄跳钱 起手请队友帮忙多打 无损上2 但就略慢 农野改去下路跳钱吸经验发育 这组合双人线配起来非常棒 最好第一趟回家先出眼石 不是傻破 这江狗 玩起来跟傻破90%位置很像 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.136.73.158 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1571815668.A.620.html
1F:推 lhsieh: google pdo sqlsrv 10/23 23:37
2F:推 bakedgrass: 你的cpanel没有终端机给你输入指令或是安装extension 10/24 05:16
3F:→ bakedgrass: 的权限吗 10/24 05:16
坦白说不是很确定,之前想做Cronjob的时候,有问过主机商,主机商是说他们的客户端不 能对伺服器下command,我刚看了一下Cpanel的版本是82.0 (build 17),控制台如图: https://i.imgur.com/B4PPCeb.jpg
而且我查到的文章大多都是在本机Windows Server开Apache用PHP去连SQL Server的方式, 在这情况之下可以去下载微软提供的DRIVER,放置在本机PHP的资料夹下,也是旧版PHP启 用sqlsrv函式去连SQL Server的方法。但我现在是远端Linux要去捞远端SQL资料,而且是 PHP 5.6.4版,要不是想办法把sqlqrv开出来,要不升级PHP版本到7.0+,前者我不确定做 不做的到,後者的话,之前写的mysql_query旧函式的所有程式会直接入土。 因为网站还在运作,所以才想说有什麽办法可以用PHP 5.6内的mssql或odbc去连,再不就 是把之前所有程式跟档案的mysql_query系列全改成mysqli_query或直接上PDO然後整个网 站升PHP版本直上7.3+....那就有内建sqlsrv可以用了 QQ ※ 编辑: noth (220.136.73.158 台湾), 10/24/2019 15:30:55
4F:推 powyo: mssql的帐密是否只允许本机存取 10/24 16:14
刚刚从另一台Windows Server去连目标SQL Server,即使用Admin也连不上... 我开始怀疑是不是SQL端设定问题,因为我好像设定完所有远端开放连线之後还没重开过伺 服器,现在可能先从SSMS着手处理看看,不过重开Windows伺服器这件事可能要等半夜 有更新我会再来回报,谢谢各位先进的热心意见 ※ 编辑: noth (220.136.73.158 台湾), 10/24/2019 16:21:09
5F:推 ri3567: 用phpinfo() 看一下 sqlsrv 或 odbc 有没装好? 10/24 16:55
odbc是有啦,sqlsrv我目前查到的范围,看起来是不用想扩充啦...,我目前是朝odbc去走 看看,真不行再来想别的资料交换的方式
6F:推 bakedgrass: 那就是没办法了。因为我的主机商倒是允许这麽做XD 10/25 02:07
有的主机商的Cpanel好像有开放Terminal功能可以对主机下command,我这个确定是没有啦 ,杯具 ※ 编辑: noth (118.168.194.38 台湾), 10/28/2019 11:50:43
7F:→ gname: 我是用sqlsrv_connect 11/05 15:58







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP