freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
- From: Daniel Fazekas <fdsubs AT axelero.hu>
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: Re: [freetds] Re: PHP & FreeTDS
- Date: Wed, 25 Aug 2004 02:22:14 +0200
On Aug 25, 2004, at 1:09, Walls Rob W Contr 75 CS/SCBS wrote:
I know this is not a PHP group, but I hoping someone knows what to do to
make this work with PHP without recompiling.
Note that your PHP apparently supports shared extensions, so you could add support for the MSSQL extension without recompiling the whole thing, if that sounds better than being stuck with ODBC.
Warning: SQL error: [unixODBC][FreeTDS][SQL Server]Unable to connect to data
source, SQL state S1000 in SQLConnect in /usr/share/php/common.inc on line
25
I hate giving unrelated and unasked for advice, but be very cautious of using an extension such as ".inc" for holding php code. That could all too easily lead to security problems, unless special precaution is taken to configure Apache not to serve a ".inc" file, or to have it run through the php interpreter. If such a file ends up in a web-accessible directory, people could enter the file's address and since that extension does not normally invoke the php interpreter, the full source code will be sent to the browser instead.
Now /usr/share/php/ does not sound like a directory anyone would make accessible through the web, so most probably there's no risk involved in this case. Sorry if you were aware of this, I just felt it was worth mentioning. Generally it's better to use extensions like ".inc.php" instead.
I'm using this code to connect:
$connection_string =
'DRIVER=TDS;SERVERNAME=db75cs-891-3;UID=$DB_LOGIN;PWD=$DB_PASSWORD; DATABASE=
$DB;';
$connection = odbc_connect( $connection_string, $DB_LOGIN, $DB_PASSWORD);
Would it be unfeasible for your project to move most of the connection parameters into the separate configuration files? I'm not really familiar with these jumbo ODBC connection strings. ;)
However, note that since you are setting $connection_string with single apostrophes, the $variables in the string are not getting expanded and are kept without modification. That is, it remains UID=$DB_LOGIN, and won't get changed to UID=whatever_is_in_$DB_LOGIN, which is probably what you wanted.
You'd have to quote the string with " for that expansion to take place. This is the big difference between ' and " in php. I can't guarantee this small change will make it all work, though. :)
The following works for me:
In /usr/local/etc/freetds.conf:
[TheNameSpecifiedInFreetdsConf]
host=this.is.the.real.host.name.or.ip.of.the.server.lan
port=1433
tds version=8.0
client charset = utf-8
In /etc/odbcinst.ini:
[TDS]
Description = FreeTDS
Driver = /usr/local/lib/libtdsodbc.so
In /etc/odbc.ini:
[TheOdbcIniDataSourceName]
Driver = TDS
Servername = TheNameSpecifiedInFreetdsConf
And in the PHP code you just initialize your connection as
$conn = odbc_connect('TheOdbcIniDataSourceName', 'username', 'password');
[When using mssql_connect(), you would have to specify 'TheNameSpecifiedInFreetdsConf' as the server name.]
PHP finds an odbc.ini file in /etc/php.d/ which loads /usr/lib/php4/odbc.so
That sounds odd. PHP does not look for or use a file called odbc.ini in order to load its shared extensions. odbc.so is probably loaded from your php.ini instead, which is in /etc/php.ini on Red Hat by default.
--
fds
-
RE: [freetds] Re: PHP & FreeTDS,
ZIGLIO, Frediano, VF-IT, 08/16/2004
-
RE: [freetds] Re: PHP & FreeTDS,
pdjekic, 08/16/2004
- RE: [freetds] Re: PHP & FreeTDS, Joseph Geiser, 08/16/2004
- <Possible follow-up(s)>
-
RE: [freetds] Re: PHP & FreeTDS,
ZIGLIO, Frediano, VF-IT, 08/16/2004
- RE: [freetds] Re: PHP & FreeTDS, pdjekic, 08/16/2004
-
RE: [freetds] Re: PHP & FreeTDS,
Walls Rob W Contr 75 CS/SCBS, 08/23/2004
- Re: [freetds] Re: PHP & FreeTDS, James K. Lowden, 08/24/2004
-
RE: [freetds] Re: PHP & FreeTDS,
Walls Rob W Contr 75 CS/SCBS, 08/24/2004
-
Re: [freetds] Re: PHP & FreeTDS,
Daniel Fazekas, 08/24/2004
- Re: [freetds] Re: PHP & FreeTDS, Drange, Bernt Andreas, 08/25/2004
-
Re: [freetds] Re: PHP & FreeTDS,
Daniel Fazekas, 08/24/2004
-
RE: [freetds] Re: PHP & FreeTDS,
Walls Rob W Contr 75 CS/SCBS, 08/25/2004
- Re: [freetds] Re: PHP & FreeTDS, Daniel Fazekas, 08/25/2004
- RE: [freetds] Re: PHP & FreeTDS, Walls Rob W Contr 75 CS/SCBS, 08/27/2004
-
RE: [freetds] Re: PHP & FreeTDS,
pdjekic, 08/16/2004
Archive powered by MHonArc 2.6.24.