변수를 반복적으로 바인딩하는 함수를 만들려고합니다. 이것은 내가 지금까지 무엇을 가지고 :PDO - 반복 바인딩 변수
function prepareQuery($db, $query, $args) {
// Returns a prepared statement
$stmt = $db->prepare($query);
foreach ($args as $arg => $value) {
$stmt->bindParam($arg, $value);
}
return $stmt;
}
이것은 내가 그것을 사용하고 방법은 다음과 같습니다
$stmt = prepareQuery($db, "SELECT * FROM `Licenses` WHERE `verCode`=:verCode", Array(":verCode" => $verCode));
$verCode = "some_string";
$stmt->execute();
while ($info = $stmt->fetch()) {
print_r($info);
}
은 아무것도 인쇄되지 않지만. 나는 데이터베이스 항목이 존재하며 PHPMyAdmin에서 동일한 쿼리가 작동한다는 것을 알고 있습니다. 그래서, 필자는 함수가 바인딩을 생성하는 방법에 문제가 있다고 생각합니다. 이 문제를 어떻게 해결할 수 있습니까? 감사!
가 왜 그냥'execute'를 사용하고 매개 변수를 전달을? – bitWorking
@bitWorking, 저는 PDO를 사용하는 사람들의 90 %가 bindParam()을 사용해야한다고 생각하기 때문에 같은 것을 궁금해합니다. 필자는 [PDOStatement :: execute()] (http://us1.php.net/manual/en/pdostatement.execute.php) 문서에서 bindParam() 메서드가 먼저 설명되고 pass- array-to-execute() 메소드가 두 번째로 설명됩니다. 만약 더 많은 사람들이 먼저 문서화 되었다면 execute() 메소드를 배우게 될까? –
아마도 $ verCode **에 값을 주어야합니다. ** 사용하기 전에 ... – Olvathar