رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل با bindParam در update رکورد
#1
سلام
یه کوئری دارم:
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 استفاده کرد؟
لطفاً راهنمایی کنید.
متشکرم.
پاسخ
تشکر شده توسط:
#2
توی حلقه‌ی foreach برای اینکه bindParam کار کنه، قبل‌از $value یه علامت & اضافه کنید:
foreach ($params as $field => &$value) {
    $this->stmt->bindParam(":{$field}", $value, $this->pdoParamType($value));
}
پاسخ
تشکر شده توسط: abdollah110110




کاربران در حال بازدید این موضوع: 1 مهمان