ODBC与FreeTDS PHP不能通过HTTP工作
问题描述:
我已经得到FreeTDS,unixODBC和ODBC在PHP上启用。这一切似乎都很好。我可以通过iSQL命令行进行连接。ODBC与FreeTDS PHP不能通过HTTP工作
由于某些原因,PHP通过HTTP访问时无法工作。
例如。 通过命令行如果我运行php index.php(其中index.php通过ODBC连接)它工作正常。
但是当通过HTTP访问相同的代码,返回
Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect
这会是一些权限的情况下提前
这里
由于是连接码
$connect = odbc_connect("DSNNAME", "USERNAME", "PASSWORD") or die('e');
我已更改凭据。但是,当我通过PHP通过终端通过SSH运行它时,代码工作正常。但是当我通过HTTP运行时,它不会。
同样在SSH上,我没有通过root用户运行它。我正在使用ec2 AWS - 并通过ec2-user(这是默认设置)运行SSH
我觉得'apache'用户没有我不知道的东西的权限。
答
您可以从PHP源代码添加DSN这样
$dsn = "Driver=FreeTDS;Server=192.168.1.17;Port=1433;Database=mydb;TDS_Version=7.2;";
$Connection = odbc_connect($dsn,$user,$pass);
你能共享代码? –
@SG_用一些代码更新了问题。请让我知道这是否有帮助。 – Shoogle
您是否曾尝试从PHP添加dsn,例如'$ dsn =“Driver = FreeTDS; Server = 192.168.1.17; Port = 1433; Database = mydb; TDS_Version = 7.2;”; \t \t $ Connection = odbc_connect($ dsn,$ user,$ pass);' 它对我很有用 –