pg_query_params() 和占位符
pg_query_params() and placeholders
感谢您阅读本文。您能否就如何理解和解决以下两个问题提供一些建议?我是 PHP 和 PostgreSQL 的新手。 OS:OSX 10.9.5,PHP:5.6.4,PostgreSQL:9.4.0
- 我想知道在 pg_query_params() 中放置占位符会导致语法错误的原因。你会如何解决这个问题?原因是我希望用户在将其他数据复制到 table.
时指定一个 table 名称
这是一个片段:
$params = array(strval($_POST['que_str2']));
$myresult = pg_query_params($connection, 'copy from stdin', $params);
echo "<br />\n$params[0] <br />\n";
Warning: pg_query_params(): Query failed: ERROR: syntax error at or near "" LINE 1: copy from stdin ^ in /Library/WebServer/Documents/test.php
my_table
- 与上述问题类似。我想解决这个错误,因为我希望用户在从文件复制数据时输入 table 名称和文件路径。
这是一个片段:
$params = array(strval($_POST['que_str2']), strval($_POST['que_str1']));
$myresult = pg_query_params($connection, 'copy from DELIMITERS \',\' CSV', $params);
echo "<br />\n$params[0] $params[1]<br />\n";
Warning: pg_query_params(): Query failed: ERROR: syntax error at or near "" LINE 1: copy from DELIMITERS ',' CSV ^ in /Library/WebServer/Documents/test.php on line 20
my_table /Library/WebServer/Documents/data2.csv
==
据我所知,PostgreSQL 不支持参数化 COPY
语句。根据关于预处理语句 (http://www.postgresql.org/docs/9.4/static/sql-prepare.html) 的 PG 9.4 文档,只有 SELECT
、INSERT
、UPDATE
、DELETE
或 VALUES
语句可以参数化。
您可能需要做的是构建 COPY
语句并自己插入参数(通过适当的清理和转义以减轻注入等),然后使用 pg_query
提交。
感谢您阅读本文。您能否就如何理解和解决以下两个问题提供一些建议?我是 PHP 和 PostgreSQL 的新手。 OS:OSX 10.9.5,PHP:5.6.4,PostgreSQL:9.4.0
- 我想知道在 pg_query_params() 中放置占位符会导致语法错误的原因。你会如何解决这个问题?原因是我希望用户在将其他数据复制到 table. 时指定一个 table 名称
这是一个片段:
$params = array(strval($_POST['que_str2']));
$myresult = pg_query_params($connection, 'copy from stdin', $params);
echo "<br />\n$params[0] <br />\n";
Warning: pg_query_params(): Query failed: ERROR: syntax error at or near "" LINE 1: copy from stdin ^ in /Library/WebServer/Documents/test.php
my_table
- 与上述问题类似。我想解决这个错误,因为我希望用户在从文件复制数据时输入 table 名称和文件路径。
这是一个片段:
$params = array(strval($_POST['que_str2']), strval($_POST['que_str1']));
$myresult = pg_query_params($connection, 'copy from DELIMITERS \',\' CSV', $params);
echo "<br />\n$params[0] $params[1]<br />\n";
Warning: pg_query_params(): Query failed: ERROR: syntax error at or near "" LINE 1: copy from DELIMITERS ',' CSV ^ in /Library/WebServer/Documents/test.php on line 20
my_table /Library/WebServer/Documents/data2.csv
==
据我所知,PostgreSQL 不支持参数化 COPY
语句。根据关于预处理语句 (http://www.postgresql.org/docs/9.4/static/sql-prepare.html) 的 PG 9.4 文档,只有 SELECT
、INSERT
、UPDATE
、DELETE
或 VALUES
语句可以参数化。
您可能需要做的是构建 COPY
语句并自己插入参数(通过适当的清理和转义以减轻注入等),然后使用 pg_query
提交。