如果不在PHP/PostgreSQL中创建50个pg_execute
-命令,如何将数组放到下面的WHERE-子句中?
// to get the question_ids of the newest questions
$result_q_id = pg_prepare($dbconn, "query6", "SELECT question_id
FROM questions
ORDER BY was_sent_at_time
DESC LIMIT 50;"
);
$result_question_id = pg_execute($dbconn, "query6", array());
// to get all question ids
$question_ids = pg_fetch_all($result_question_id);
// to get titles, question_id from the db by using the question ids
$result = pg_prepare($dbconn, "query8", "SELECT title
FROM questions
WHERE question_id = $1 // Problem here! How to get many WHERE's?
ORDER BY was_sent_at_time
DESC LIMIT 50;"
);
$result = pg_execute($dbconn, "query8", array($question_ids));
// Problem here, since it is an array
对于第一次出现文本
Problem here
的行,我得到以下错误。Warning: pg_execute() [function.pg-execute]: Query failed: ERROR: invalid input syntax for integer: "Array" in /var/www/codes/handlers/handle_questions_by_time.php on line 22
Call Stack
最佳答案
子查询解决了所有这些问题。。。
$result = pg_prepare($dbconn, "query8",
"SELECT title
FROM questions
WHERE question_id in (SELECT question_id
FROM questions
ORDER BY was_sent_at_time
DESC LIMIT 50)
ORDER BY was_sent_at_time
DESC LIMIT 50;"