如何在 PHP 中的 PostgreSQL 数据库上使用多个参数创建准备好的语句

How to make a prepared statement with multiple parameters on a PostgreSQL DB in PHP

    if (isset ($_POST['valider'])) {
        if (isset ($_POST['nom']) && isset ($_POST['num']) && isset($_POST['suffixe']) && isset($_POST['rue']) && isset($_POST['cp']) && isset($_POST['ville'])){
            $nom = $_POST['nom'];
            $num = $_POST['num'];
            $suffixe = $_POST['suffixe'];
            $rue = $_POST['rue'];
            $cp = $_POST['cp'];
            $ville = $_POST['ville'];

            pg_prepare($dbconn, "query1", 'SELECT id FROM public."City" WHERE zip_code =  AND name = ') or die ("Cannot prepare statement\n");
            $result = pg_execute($dbconn, "query1", array($cp, $ville)) or die ("Cannot execute statement\n");
            pg_close($dbconn);
}        

我们期望“3”,但我们在 $result 中找到了 'Resource ID #7'。

我们正在参加黑客马拉松,我们将不胜感激。

谢谢。

您需要将结果提取到数组中:

pg_prepare($dbconn, "query1", 'SELECT id FROM public."City" WHERE zip_code =  AND name = ') or die ("Cannot prepare statement\n");
$result = pg_execute($dbconn, "query1", array($cp, $ville)) or die ("Cannot execute statement\n");
$f = pg_fetch_all($result);
for ($i = 0; $i < count($f); $i++) {
  // Do something:
  // print ($f[$i]['id']);
}

您也可以使用pg_fetch_row()进行迭代。

披露:我为 EnterpriseDB (EDB)

工作