我试图为Postgres数据库编写SELECT查询但不是我收到了一些错误 - pg_query():查询失败:错误:语法错误在或附近" $"第1行
$findResult = pg_query('SELECT * FROM fingerprintdata WHERE buildingname = $building ');
$numrows = pg_num_rows($findResult);
答案 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 ...";
)