用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>'; 

再次,它编译和运行,但似乎$行查询后回来为假,所以循环没有运行打印出来的结果,因为它有没有。

谢谢!

+0

您错过了'echo'后的结尾'

;这只是在SO还是在你的代码中? –

回答

不能使用占位符的识别符(即,表或列名称),以便此:

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] .,但这些大概只是在您的问题文本中,因为您说代码编译和运行。

不能使用占位符的识别符(即,表或列名称),以便此:

select * from $1 

将不起作用。如果你想在表名是一个变量,我想你坚持用绳子插值:

$table = pg_escape_identifier($queryType); 
$query = "SELECT * FROM $table"; 

你要使用pg_escape_identifier以避免奇怪的价值观问题$queryType但请记住,pg_escape_identifier会双引号标识符,这可能会给你区分大小写的问题。

您的问题中还有两个缺失的单引号:一个在echo'<table>;和另一个在. $row['id] .,但这些大概只是在您的问题文本中,因为您说代码编译和运行。