我有大约25个可选字段用于我的SQL查询。我的做法是,使用ajax(用于分页)将数据发布到另一个php文件中准备和执行查询。
示例(index.php):
// Get optional value
if (isset($_POST['il']) && !empty($_POST['il'])) $il = $_POST['il'];
// JS
change_page('0');
});
function change_page(page_id) {
var dataString = page_id;
// Define optional value
<?php if (isset($_POST['il'])&& !empty($_POST['il'])):?>
var il = '<?php echo $il;?>';
<?php endif; ?>
// Send optional value
$.ajax({
type: "POST",
url: "includes/post.php",
data: {
<?php if (isset($_POST['il'])&& !empty($_POST['il'])):?>'il': il,<?php endif; ?> },
...
Post.php (操作处理的文件)
...
// Main Query (default)
$bas_query = "SELECT id, a, b, c, d, e FROM test.db WHERE a=$1 AND b=$2";
// If user has an input for 'il', add it to query.
if (isset($_POST['il']) && !empty($_POST['il'])) {
$il = $_POST['il'];
$bas_query. = ' AND city='.$il;
}
// How it's executed after statements (without ifs included)
$exec = pg_prepare($postgre,'sql2', 'SELECT id, a, b, c, d, e FROM test.db WHERE a=$1 AND b=$2 OFFSET $3 LIMIT $4');
$exec = pg_execute($postgre,'sql2', array($1,$2,$3,$4));
我的问题是,我如何准备一个带有许多if语句的预处理语句?我可以连接和准备pg_prepare
的查询,但是在执行查询之前,如何按正确的顺序分配值?
非常感谢您的任何帮助。
pg_execute
中使用它,我认为你不必担心顺序问题。 - A. Mesut Konuklar