PDO working via Apache but not at the command line?

From: Date: Mon, 18 Oct 2010 20:20:15 +0000
Subject: PDO working via Apache but not at the command line?
Groups: php.general php.pdo 
Request: Send a blank email to pdo+get-470@lists.php.net to get a copy of this message
I have the following very simple script that uses PDO/FreeTDS to connect to a mssql server. I have PHP Version 5.3.3 running on Linux under Apache. When I view this script via apache/firefox I get proper output. If I try and run this via the command line like "php db_dump.php" I get an error connecting to the DB: Unable to connect to Omnia: SQLSTATE[HY000] Unable to connect: Adaptive Server is unavailable or does not exist (severity 9). Does Apache call PHP differently than the cli would? Why would Apache method work find, but direct from the command line cause a problem? Do I need to call php from the cli with some other argument? ---------------------------------------------------------------------- $num || $num = 197804; $dbh = omnia_connect(); $sql = "EXECUTE P_SaaS_AccountServiceFeatures_Retrieve $num"; $sth = $dbh->prepare($sql); $sth->execute(); $foo = $sth->fetchAll(PDO::FETCH_ASSOC); foreach ($foo as $i) {
        if ($i['ItemStatus'] != 'I') {
                $out .= $i['Component'] . "\n";
        }
} print $out; #################################################################### function omnia_connect() {
        putenv('FREETDSCONF=/etc/freetds.conf');
        $db = "DB_NAME";
        $user = "user";
        $pass = "pass";
        $dsn = "dblib:host=Omnia;dbname=$db";
        try {
                $dbh = new PDO($dsn, $user, $pass);
        } catch (PDOException $e) {
                echo 'Unable to connect to Omnia: ' . $e->getMessage();
                exit;
        }
        return $dbh;
}

« previous php.pdo (#470) next »