小编zen*_*ord的帖子

PDO:连接为singleton =线程问题?

所以我最终开始重构我的PHP office应用程序的基础:我基于单例PDO类添加了新功能,我计划在整个应用程序中部署它.这是非常简单和工作(现在)应该:

class DB {

    protected static $instance;
    protected function __construct() {}
    public static function getInstance()
    {

        if( empty( self::$instance ) )
        {
            $dsn =  'pgsql:host=' . Config::$a .
                    ';dbname='    . Config::$b .
                    ';port='      . Config::$c .
                    ';connect_timeout=15';            
            $db_user = Config::$d;             
            $db_pass = Config::$e;

            try
            {
                self::$instance = new PDO( $dsn, $db_user, $db_pass );
                self::$instance->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
            }  
            catch( PDOException $e )
            {  
                new Log( 6, "DB Class failed to connect to dbase: $e" );
            }                          
        }
        return self::$instance; …
Run Code Online (Sandbox Code Playgroud)

php pdo thread-safety

1
推荐指数
1
解决办法
1366
查看次数

SQL和负浮动

考虑这个相当简单的SQL查询:

"SELECT * FROM transactions 
WHERE amount BETWEEN $cost_amount AND 0
AND acc_int IN ('Contant', '647-0191181-84')
AND dos_costs_id IS NULL
AND date + interval '30 days' >= to_date('$cost_date', 'YYYY-MM-DD')
ORDER BY (amount <> to_number('$cost_amount','99999999D99')), date DESC"
Run Code Online (Sandbox Code Playgroud)

我已经使用这个确切的查询两年了,以显示我们的传入交易的帐户上的所有可能的交易.所有这些"金额"都是积极的浮动.

现在我正在重复使用查询传出事务,因此金额总是负数.每当金额为整数时,这都有效,但只要值为浮点数就会停止.因此,值前面的' - '和数量末尾的'逗号和两个尾随数字'的组合会返回语法错误,fe:

Query failed: ERROR: syntax error at or near "," LINE 2: WHERE amount BETWEEN -327,13 AND 0
Run Code Online (Sandbox Code Playgroud)

我试过在金额附近添加引号,但这没有帮助.

php sql postgresql

1
推荐指数
1
解决办法
1774
查看次数

标签 统计

php ×2

pdo ×1

postgresql ×1

sql ×1

thread-safety ×1