【发布时间】:2015-01-23 07:30:05
【问题描述】:
pdo-bindparam-into-one-statement
我对 PDO 很陌生,我想我迷路了.. 我想要的是使用相同的变量来插入和更新两者..
function pdoSet($fields, &$values, $source = array()){
$set = '';
$values = array();
if(!$source) $source = &$_POST;
foreach($fields as $field){
if(isset($source[$field])){
$set .= " $field =:$field, ";
$values[$field] = $source[$field];
}
}
return substr($set, 0, -2);
}
$fields = array(
'name'
, 'part'
, 'tel'
, 'email'
, 'title'
, 'contents'
);
if(!$idx){
$fields[] = 'reg_date';
$values[] = 'now()';
$st = $pdo -> prepare("insert into qna_board set ".pdoSet($fields, $values));
}else{
$st = $pdo -> prepare("update qna_board set ".pdoSet($fields, $values)." where idx = :idx");
$st ->bindParam(':idx', $idx);
}
$st->execute($values);
插入成功,但更新失败。 当我使用 $idx 而不是 :idx 时,它起作用了.. 你能告诉我问题是什么吗?
【问题讨论】: