2017-01-04 43 views
0

你能帮我解答下面的问题吗?Postgres在php中查询日期变量

PHP代码://

$countdate='2017-01-03'; 
$countsql='SELECT rucid,"databaseType","countLoggedOn","prodCount","nprodCount","countType" FROM "ru_countLog" WHERE "countLoggedOn"=$countdate'; 

- >它给语法错误

语法错误达到或接近 “$” LINE 1:... untType” FROM “ru_countLog” WHERE “countLoggedOn”= $ countdate

+0

语法错误:... untType” FROM “ru_countLog” WHERE “countLoggedOn”= $ countdate –

回答

0

也许你应该尝试这样

$countdate='2017-01-03'; 
$countsql='SELECT rucid,"databaseType","countLoggedOn","prodCount","nprodCount","countType" FROM "ru_countLog" WHERE "countLoggedOn"='.$countdate; 

希望这有助于

1

从查询中删除内部双引号:

$countsql = "SELECT rucid, databaseType, countLoggedOn, 
      prodCount, nprodCount, countType 
      FROM ru_countLog 
      WHERE countLoggedOn = $countdate"; 

注意这个查询很容易受到SQL注入。考虑参数化$countdate。随着http://php.net/manual/en/function.pg-query-params.php,这将成为

$countsql = 'SELECT rucid, databaseType, countLoggedOn, 
     prodCount, nprodCount, countType 
     FROM ru_countLog 
     WHERE countLoggedOn = $1'; 

$result = pg_query_params($dbconn, $countsql, array($countdate)); 

其中$dbconn是你的数据库连接或接近 “$” LINE 1

+0

'$ countdate'不会在您的第一个代码示例中被解释,因为它在单引号字符串中。 – ceejayoz