0

对于以下问题,我需要一些有效的解决方案:由于某种原因,正确解释会很耗时,我需要一个 PDO 准备语句,看起来是这样的:

'SELECT field, another field, blabla FROM table WHERE some_foreign_id = first_val AND the_same_foreign_id = second_val AND again_the_same_id = third val ......' 

并且我希望用未知大小的数组填充值,这取决于该外部表中有多少字段适合另一个表中的某个类别。所以问题是:它甚至可能还是我应该放弃它并找到一些天真的解决方法?

提前致谢!苹果电脑

4

2 回答 2

0

您可以将一组值传递给 stmt ->execute($array); 唯一棘手的部分是输入要输入的问号数量。

    $foreign_ids = array(foreign_id_1, foreign_id_2, foreign_id_3); //etc
    $input_list = substr(str_repeat(',?', count($foreign_ids)), 1);  //this gets you the correct number of ? to use for your query
    // if you need add another value to the parameters you can use array_push($foreign_ids,$your_other_param);


    $stmt= $dbh->prepare("
        SELECT field, another_field
        WHERE some_foreign_id = ($input_list)");
    $stmt->execute($foreign_ids);
于 2012-09-24T22:06:03.780 回答
-1

这应该是可能的。您需要使用参数的问号动态生成查询,然后在执行时与数组绑定。

请参阅PHP 文档的PDO::execute页面上的示例 3 。

于 2012-09-24T21:25:15.933 回答