如何为PDO预处理语句动态构建数组

时间:2017-09-29 10:29:32

标签: php pdo

我正在使用PDO准备的查询来搜索学生的表格

用户可以选择他们希望搜索的字段 - 名字,姓氏,出生日期,性别或这些字段的任意组合。

我正在尝试构建一个由准备好的语句执行的数组。

e.g。如果用户选择lastname和dob,我该如何生成以下数组?

treeView.DataContext = new SolutionExplorerViewModel();

如果我按常规添加值:

array(':lastname' => $lastname, ':dob' => $dob);

执行查询:

$my_array[] = "[:lastname] => $lastname";   
$my_array[] = "[:dob] => $dob";

我收到错误:

  

警告:PDOStatement :: execute():SQLSTATE [HY093]:参数无效   number:参数未在C:\ htdocs \ pdo \ students \ search.php中定义   在第67行

感激不尽的任何建议

2 个答案:

答案 0 :(得分:0)

使用字符串索引。

Activity

答案 1 :(得分:-2)

示例:

$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->execute(array(':calories' => $calories, ':colour' => $colour));

ex:$my_array[':calories']=>$calories

根据您的格式,它将创建如下数组。

Array
(
    [0] => :lastname => 
    [1] => :dob => 
)

所以更新格式如下。

$my_array=array(":lastname" => $lastname,":dob" => $dob);