用PostgreSQL和PHP获取查询结果
问题描述:
我想让我的postgresql工作。我以前使用过sql,但从来没有postgres。用PostgreSQL和PHP获取查询结果
我觉得下面应该显示的输出,一个漂亮的表。
我测试过PHP在几个地方,它似乎是结果变量是没有得到任何东西回来,所以是假值布尔值,所以没有什么retreived。如果有人能帮我找到这个错误,我会很感激。
if($queryType != NULL)
echo'<table>;
if($limit == NULL && $offset == NULL)
{
$query = 'SELECT * FROM $1';
$stmt = pg_prepare($connection, "limitoffset", $query);
$result = pg_execute($connection, "limitoffset", array($queryType));
if($queryType == 'city'){
while($row = pg_fetch_assoc($result)){
echo '<tr>';
echo '<td>' . $row['id] . '</td>';
echo '</tr>';
}
echo '</table>';
再次,它编译和运行,但似乎$行查询后回来为假,所以循环没有运行打印出来的结果,因为它有没有。
谢谢!
不能使用占位符的识别符(即,表或列名称),以便此:
select * from $1
将不起作用。如果你想在表名是一个变量,我想你坚持用绳子插值:
$table = pg_escape_identifier($queryType);
$query = "SELECT * FROM $table";
你要使用pg_escape_identifier
以避免奇怪的价值观问题$queryType
但请记住,pg_escape_identifier
会双引号标识符,这可能会给你区分大小写的问题。
您的问题中还有两个缺失的单引号:一个在echo'<table>;
和另一个在. $row['id] .
,但这些大概只是在您的问题文本中,因为您说代码编译和运行。
答
不能使用占位符的识别符(即,表或列名称),以便此:
select * from $1
将不起作用。如果你想在表名是一个变量,我想你坚持用绳子插值:
$table = pg_escape_identifier($queryType);
$query = "SELECT * FROM $table";
你要使用pg_escape_identifier
以避免奇怪的价值观问题$queryType
但请记住,pg_escape_identifier
会双引号标识符,这可能会给你区分大小写的问题。
您的问题中还有两个缺失的单引号:一个在echo'<table>;
和另一个在. $row['id] .
,但这些大概只是在您的问题文本中,因为您说代码编译和运行。
您错过了'echo'后的结尾'
回答
不能使用占位符的识别符(即,表或列名称),以便此:
将不起作用。如果你想在表名是一个变量,我想你坚持用绳子插值:
你要使用
pg_escape_identifier
以避免奇怪的价值观问题$queryType
但请记住,pg_escape_identifier
会双引号标识符,这可能会给你区分大小写的问题。您的问题中还有两个缺失的单引号:一个在
echo'<table>;
和另一个在. $row['id] .
,但这些大概只是在您的问题文本中,因为您说代码编译和运行。相关问题