Php 如何为PDO准备的语句动态构建数组
我使用PDO准备的查询来搜索学生的表 用户可以选择他们希望搜索的字段-名字、姓氏、出生日期、性别或这些字段的任意组合 我正在尝试动态构建一个数组,由准备好的语句执行 e、 g.如果用户选择lastname和dob,如何生成以下数组Php 如何为PDO准备的语句动态构建数组,php,pdo,Php,Pdo,我使用PDO准备的查询来搜索学生的表 用户可以选择他们希望搜索的字段-名字、姓氏、出生日期、性别或这些字段的任意组合 我正在尝试动态构建一个数组,由准备好的语句执行 e、 g.如果用户选择lastname和dob,如何生成以下数组 array(':lastname' => $lastname, ':dob' => $dob); 如果我按照常规添加值: $my_array[] = "[:lastname] => $lastname"; $my_array[] = "[:d
array(':lastname' => $lastname, ':dob' => $dob);
如果我按照常规添加值:
$my_array[] = "[:lastname] => $lastname";
$my_array[] = "[:dob] => $dob";
并执行查询:
$stmt = $db_conn->prepare($query);
$stmt->execute($my_array);
我得到一个错误:
警告:PDOStatement::execute():SQLSTATE[HY093]:参数无效
编号:未在C:\htdocs\pdo\students\search.php中定义参数
第67行
感激地收到的任何建议示例:
$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);
使用字符串索引
$dbh = new PDO("sqlite::memory:");
$stmt = $dbh->prepare("SELECT :foo, :bar");
$params = array();
// Add parameters
$params[":foo"] = 1;
$params[":bar"] = 2;
// Overwrite parameters
$params[":foo"] = 42;
// Execute
$stmt->execute($params);
显示
$query
以及尝试$my_数组[':lastname']=$lastname
和$my_数组[':dob']=$dob代码>托尼,你的钱是对的-非常感谢!我还没有掌握php中的数组。请不要回答您不理解的问题,谢谢