我看了几个例子,虽然似乎都没有用,我打算从PostgreSQL数据库中的表中填充一个下拉框,我做了相反的事情,虽然它更复杂。
现在我有以下内容:(已尝试过不同的方式)
...
<ul>
<form name="display" action="" method="post">
<label>Select a terminal profile:</label>
<select name='ddlTerminalProfiles'>
<option>choose...<option/>
<?php
#DB Connection
$con_string= "host=localhost port=1234 dbname=myDB user=myUser password=myPass";
$db_con = pg_connect($con_string);
#Query for profiles
$result=pg_query($dbcon, "SELECT * FROM profiles");
while ($row = pg_fetch_array($result))
{
?>
<option value="<? echo $row['profile_name'];?>"><?echo $row['profile_name'];?></option>
<?
}
?>
</select>
<br/>
...
连接很好,数据库中的数据也是如此。
还尝试使用if(isset($_POST['REFRESH']))...
添加刷新按钮进行触发。没有运气。
答案 0 :(得分:0)
在此代码中
<?php
#DB Connection
$con_string= "host=localhost port=1234 dbname=myDB user=myUser password=myPass";
$db_con = pg_connect($con_string);
pg_connect()设置$ db_con的值。但是这段代码
#Query for profiles
$result=pg_query($dbcon, "SELECT * FROM profiles");
不使用$ db_con。它使用$ dbcon。
每个函数的PHP文档都会告诉您在出现错误时返回的内容。如果函数可以返回某种错误状态,则需要查找它。
$db_con = pg_connect($con_string);
if (!$db_con) {
echo "pg_connect failed.", PHP_EOL;
}
pg_query()和pg_fetch_array()也会返回错误状态。
字符串连接代码更容易逐个构建。从
开始echo "<option></option>", PHP_EOL;
那应该是显而易见的;没有连接。添加引号。没有逃脱报价是经常出错的原因。
echo "<option value=\"\"></option>", PHP_EOL;
使用大括号语法添加行值。
echo "<option value=\"{$row['profile_name']}\">{$row['profile_name']}</option>", PHP_EOL;