1

PostgreSQL データベースへの php クエリを作成したいと考えています。サーバーでクエリをテストして返しましたが、phpで試してみると:

<?php

//Check the input
if (!isset($_POST['variable']))
echo "Address not selected";

$input = $_POST['variable'];
//$input = ucfirst(trim($_POST['variable']));
//echo $input;


$conn = pg_connect("host=localhost port=5432 dbname=geocoder user=postgres");
if (!$conn)
echo "Could not connect to server..";

$sql = "SELECT (addy).stateabbrev FROM geocode($input);";
$result = pg_query($conn, $sql);

if  (!$result)
    echo "Query did not executed..";

?>

「クエリが実行されませんでした..」と表示されます。

QUERY の文字列は、JavaScript を使用して HTML ページから取得されます。

Apache2 の error.log には次のように表示されます。

PHP 警告: pg_query(): クエリが失敗しました: エラー: "Penn" またはその付近で構文エラーが発生しました\nLINE 1: SELECT (addy).stateabbrev FROM geocode(O

ここでポイントは何ですか?

4

2 に答える 2

0

私はなんとか問題を見つけることができました。それは、geocode()関数からの$input変数が一重引用符で囲まれている必要があるという事実です。

geocode('$input')

:)

于 2013-01-20T11:34:02.177 に答える
0

ユーザーが提供したデータをサニタイズします。

$input = pg_escape_literal($conn, $input);
$sql = "SELECT (addy).stateabbrev FROM geocode($input);";
于 2013-01-19T15:10:36.477 に答える