Ok, here is enough code to get you started :-) <?php /** this function is here to ensure all locks etc on a connection are * cleared at the end of the script. NEVER call this from a script! */ function _adodb_shutdown($connection=null) { // Place any shutdown code here }
/** This class houses the static methods to creating connections to SQLServer. */ class ADODB { function ConnectToSQLServer ( $server, $database, $username, $password ) { $obj=new COM('ADODB.connection'); if(!$obj->pinned()) { $obj->open("Provider=SQLOLEDB.1;Server=$server;Database= $database;UID=$username;PWD=$password;"); } register_shutdown_function('_adodb_shutdown'); return $obj; } function ExecuteQuery($sql,&$connection) { $recordsAffected=0; return $connection->Execute($sql, $recordsAffected, 8); } function Execute($sql,&$connection) { $ra=0; $connection->Execute($sql,$ra,129); } } /* Some util functions */ function dbEscape($s) { return "'".str_replace("'", "''", $s)."'"; } function forceNumber($number) { if(!is_numeric($number)) { // Trigger error is one of my fuctions, you'd have to do somethine else ;-) //trigger_error("Non numeric passed to forceNumber: '$number'", E_USER_ERROR); } return $number*1.0; // ensures it is stored in php as a number } /* Some examples of using it. * Please note that in these examples I connect to the DB in each function, * this is totally and utterly wrong for a real situation, you should only * make a connection once per php client connection. */ /* Gets a single result */ function exmpl1() { $server=ADODB::ConnectToSQLServer ( $server, $database, $username, $password ); $recset=0; $recset=ADODB::ExecuteQuery("SELECT MIN(RowID) FROM T_RowID", $server); $ret=$recset->Fields; $ret=$ret->item(0); $ret=$ret->Value; $recset->close(); return $ret; } /* Gets an array of results */ function exmpl2($Name,$FromId) { $server=ADODB::ConnectToSQLServer ( $server, $database, $username, $password ); $recset=0; $Name=dbEscape($name); $FromId=forceNumber($parent); $recset=ADODB::ExecuteQuery("SELECT ToId FROM T_References WHERE KeyName=$Name AND FromId=$FromId",$server); $ret=array(); while(!$recset->EOF()) { $p=$recset->Fields; $p=$p->item(0); array_push($ret,$p->Value); $recset->movenext(); } $recset->close(); return $ret; } /* Runs an update only */ function exmpl3($parent,$name,$child) { $server=ADODB::ConnectToSQLServer ( $server, $database, $username, $password ); $parent=forceNumber($parent); $name=substr($name,0,112); $name=dbEscape($name); $child=forceNumber($child); $sql="INSERT INTO T_References (FromId,KeyName,ToId) VALUES ($parent,$name,$server)"; ADODB::Execute($sql,$this->connection); } ?> Cheers AJ On Mon, 2006-12-04 at 12:30 +1300, Bruce Cowin wrote: > I'd be interested. I've used ADO when connecting through VB and C# but in > PHP (which I'm relatively new at) I've always used the mssql_* functions. > > > Regards, > > Bruce > > >>> git <[EMAIL PROTECTED]> 2/12/2006 1:43 a.m. >>> > On Wed, 15 Nov 2006 02:17:07 -0800, Frank M. Kromann wrote: > > > Hello, > > > > This is not correct. > > > > PDO and native mssql_*() functions exists in two fifferent versions. The > > version compiled with Microsofts (old) version of dblib has the > > restrictions mentioned here but the version compiled with FreeTDS > > (php_dblib.dll and php_pdo_dblib.dll) does not. > > > > - Frank > > > >> Hello, > >> > >> I recommend you use PDO and odbc to connect to MS SQL. Other > > connection > >> methods have limitations with MS SQL including: > >> > >> 1.) varchars limited to 256 > >> 2.) no support for extended characters > >> > >> Aspen > >> > >> -----Original Message----- > >> From: Dale Attree [mailto:[EMAIL PROTECTED] > >> Sent: Tuesday, November 14, 2006 5:14 AM > >> To: php-windows@lists.php.net > >> Subject: [PHP-WIN] SQL Server 2005 > >> Importance: High > >> > >> Hi all, > >> > >> > >> > >> I am having trouble connecting to SQL Server 2005. I have installed it > > with > >> mixed mode authentication. > >> > >> > >> > >> When I call mssql_connect('localhost',$username,$password), I get a PHP > >> error saying unable to connect to server. > >> > >> > >> > >> In the PHP manual, it says something about an "interfaces" file. Where > > would > >> I find this file? > >> > >> > >> > >> Kind Regards, > >> > >> Dale > >> > >> > >> > > In general - unless you are connecting from something other than windows > is it most logical to use ADODB and COM to connection with SQL Server. > > That is how I have done it for years and it ticks all the boxes, fast > reliable, flexible, supported, EASY. > > If anyone is interested enough I am happy to post a description of how to > do it and the issues you might face on one of my blogs > > Cheers > > AJ > > -- > Cubical Land > www.cubicalland.com > -- git <[EMAIL PROTECTED]> www.cubicalland.com