Postgresql PDO,无法使用HTML5的数据列表

时间:2018-02-14 14:00:06

标签: postgresql pdo

我是PDO的新手,非常新,我试图从多个网站(this)阅读文档,但我还是不完全理解它。

不过,我希望更新我在公司使用的内部网站,因为这个项目变得越来越重要,我想重写它以更好地塑造它。

我能够"转换":

<?php
$sql = "SELECT name FROM table order by name ASC";
$result1 = pg_query($conn, $sql);
while ($row = pg_fetch_row($result1)) {
  echo "<option value='$row[0]'>$row[0]</option>";
}
?>

为:

<?php
$sql = "SELECT name FROM table order by name ASC";
$stmt_menu = $pdo->prepare($sql);
$stmt_menu -> execute();
foreach ($stmt_menu as $row){
  echo "<option value=".$row['name'].">".$row['name']."</option>";
}
?>

即使我希望继续使用row[0]以简化,但Apache的日志抱怨PHP Notice: Undefined offset: 0 in /var/www/pdo-test-website/left-menu.php on line 20

遵循其他教程(如this之一),我试图将当前的数据主义SQL替换为基于PDO的语句。

我之前:

<input type="text" list="test_list" class="form-control input-sm" name="test_name" id="test_name_id" />

<?php
echo '<datalist id="test_list">';
$test_name = pg_query("SELECT DISTINCT ON (FOO) FOO FROM table;");
while ($row = pg_fetch_row($test_name)) {
  echo "<option value='$row[0]'>$row[0]</option>";
}
echo '</datalist>';
?>

现在:

<?php
$datalist_foo = "SELECT DISTINCT ON (:value) :value FROM table;";
$stmt_datalist = $pdo->prepare($datalist_foo);


echo '<datalist id="test_list">';
$stmt_datalist->execute(['value' => "FOO"]);
foreach ( $stmt_datalist as $row ) {
    echo "<option value=".$row['FOO'].">".$row['FOO']."</option>";
}
echo '</datalist>';
?>

我正在尽力让它工作,但我一直在阅读Apache的错误日志文件中的错误。 我尝试在许多不同的版本中重写这个语句,如果我将日志文件粘贴到您的审阅中,那将不会那么有用,因为我还应该为每个错误行编写完整的PHP代码。

最后一个错误,即我在尝试上面发布的代码后得到的错误是:

PHP Notice:  Undefined index: FOO in /var/www/pdo-test-website/datalist.php

我只想注意,非pdo版本有效,(测试)数据库里面有数据,我可以使用&#34; old&#34;来获取它们。 pg_query方法。

我希望你能给我一些建议,我也尝试过这个链接上的解决方案:returning multiple rows from postgre PDO但是我无法让它发挥作用。

0 个答案:

没有答案