تالار گفتمان nCIS.ir

نسخه‌ی کامل: مشکل با bindParam در update رکورد
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
یه کوئری دارم:
UPDATE categories SET name=:name WHERE (id=:id)
و یه آرایه:
Array
(
   [name] => PHP
   [id] => 2
)
اینارو به عنوان پارامتر به متد bind میفرستم.
مشکل اینه که مقدار id برای name ثبت میشه در حالی که باید مقدار name برای فیلد  name ثبت بشه و مقدار id برای id.
متد bind اینه:
public function bind( $sql, $params = [] ) {
$this->stmt = $this->pdo->prepare( $sql );
if ( count( $params ) > 0 ) {
foreach ( $params as $field => $value ) {
$this->stmt->bindParam( ":{$field}", $value, $this->pdoParamType( $value ) );
}
}
$this->stmt->execute();
}
از bindParam نمیشه داخل foreach استفاده کرد؟
لطفاً راهنمایی کنید.
متشکرم.
توی حلقه‌ی foreach برای اینکه bindParam کار کنه، قبل‌از $value یه علامت & اضافه کنید:
foreach ($params as $field => &$value) {
    $this->stmt->bindParam(":{$field}", $value, $this->pdoParamType($value));
}