使用php

时间:2017-01-10 08:48:52

标签: php postgresql

我试图为Postgres数据库编写SELECT查询但不是我收到了一些错误 - pg_query():查询失败:错误:语法错误在或附近" $"第1行

$findResult = pg_query('SELECT * FROM fingerprintdata WHERE buildingname = $building  ');
$numrows    = pg_num_rows($findResult);

4 个答案:

答案 0 :(得分:0)

查询应该是这样的:

pg_query('SELECT * FROM fingerprintdata WHERE buildingname = "$building"  ');

变量应该在引号内""

答案 1 :(得分:0)

$findResult = pg_query($conn, 'SELECT * FROM fingerprintdata WHERE buildingname = "$building"');
$numrows = pg_num_rows($findResult);

答案 2 :(得分:0)

请尝试以下解决方案。你没有在单引号中加上等号,这就是你得到变量错误的原因。

$findResult = pg_query('SELECT * FROM fingerprintdata WHERE buildingname =' . $building);
$numrows    = pg_num_rows($findResult);

答案 3 :(得分:0)

$query = 'SELECT * FROM fingerprintdata WHERE buildingname = '.pg_escape_literal($building); // to be able to var_dump($query) to see, what it actually looks like
$findResult = pg_query($query);

在您的情况下,您使用的是单引号,但不会在内部扩展$building。如果您使用双引号,它会起作用,但您很容易受到SQL注入(例如$building = "xxx'; DROP DATABASE ...";