0

PHPとPostgresで単純な挿入を行うために、準備されたステートメントを使用しようとしています。これまでのところ、私はこれを行ってきました:

<?php
$conn_string = "host=localhost port=5432"; // plus us/pw
$dbconn = pg_connect($conn_string); 

$table  = 'business_primary_category';
$column = 'primary_category';
$tag = 'restuarant';


// Prepare a query for execution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM $table WHERE $column = $1');

// Execute the prepared query.  Note that it is not necessary to escape
// the string "Joe's Widgets" in any way
$result = pg_execute($dbconn, "my_query", array("$tag"));

?>

私は基本的にphp.netのページから取ってきましたが、何が間違っていたのかわかりません。それを使用するためにライブラリをインストールする必要がありますか?ありがとう!

これらは私が得るエラーです:

Warning: pg_prepare() [function.pg-prepare]: Query failed: ERROR: syntax error at or near "$" at character 15 in /home/url    **......**   pdo.php on line 11

Warning: pg_execute() [function.pg-execute]: Query failed: ERROR: prepared statement "my_query" does not exist in /home/url    **......**   pdo.php on line 15

Warning: pg_execute() [function.pg-execute]: Query failed: ERROR: prepared statement "my_query" does not exist in /home/url    **......**   pdo.php on line 18
4

2 に答える 2

3

変数を補間したい場合は、二重引用符を使用する必要があります。それ以外の場合、PHP は文字列リテラルとして扱います。試す:

$result = pg_prepare($dbconn, "my_query", "SELECT * FROM $table WHERE $column = $1");
于 2012-09-17T20:23:00.887 に答える
2

最初に飛び出すのは... で二重引用符を使用します'SELECT * FROM $table WHERE $column = $1'

于 2012-09-17T20:22:33.650 に答える