2015-07-16 3 views
0

UPDATE: Это не дубликат "Invalid parameter number: parameter was not defined" Inserting data Эта проблема имеет в виде фреймворки, и спрашивающий использовал неправильные переменный, он отметил, что этот вопрос должен возможно, будет удален, как вопрос не лежал с PDO в целом. Это другой вопрос.Как обновлять записи в п.д.о.

Этот код для моей CMS предназначен для обновления информации о продукте, которая уже существует на продукт. В настоящее время, когда я обновляю информацию, я возвращаюсь к той же странице и получить эту ошибку и информацию вторит для каждого продукта пытались обновить ...

Всего: 5, Priority: 1, Этикетка: Одежда, стоимость: Рубашка, Видимый: верно, ID: 34

"ОБНОВЛЕНИЕ product_attributes установить приоритет =: приоритет, метка =: метка, значение =: значение, single_line =: single_line ГДЕ product_id = : pRODUCT_ID"

SQLSTATE [HY093]: недопустимый номер параметра: параметр не определен

$id = $_GET['id']; 
for($i = 0; $i < $totalProducts; $i++){ 
    if(!empty($_POST)){ 
     try { 
      $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
      $sql = "UPDATE product_attributes SET priority = :priority, 
                   label = :label, 
                   value = :value, 
                   visible = :visible 
                WHERE product_id = :product_id"; 
      //Prepare Statement 
      $query = $pdo->prepare($sql); 
      $query->bindValue(' :priority ', $_POST['priority' . $i]); 
      $query->bindValue(' :label ', $_POST['label' . $i]); 
      $query->bindValue(' :value ', $_POST['value' . $i]); 
      $query->bindValue(' :visible ', $_POST['visible' . $i]); 
      $query->bindValue(' :product_id ', $id); 

      //Execute the query 
      $query->execute(); 

      // echo a message to say the UPDATE succeeded 
      echo $query->rowCount() . " records UPDATED successfully"; 
     } 
     catch(PDOException $e) 
     { 
      echo "<br>Priority:" . $_POST['priority' . $i] . "<br>";//currently echoes "1" 
      echo "<br>Label:" . $_POST['label' . $i] . "<br>";//currently echoes "clothing" 
      echo "<br>Value:" . $_POST['value' . $i] . "<br>";//currently echoes "shirt" 
      echo "<br>Visible:" . $_POST['visible' . $i] . "//<br>";//echoes "true" 
      echo "<br>ID:" . $id . "<br>";//currently echoes "34" 

      echo '"' . $sql . " \"<br>" . $e->getMessage() . "<br>"; 
     } 
    } 
} 

Однако, у меня есть равное количество связанных значений и полей SQL обновляется. Я искал ответы на другие ответные вопросы, но ни один из них не разрешил мою проблему. Почему он говорит, что параметр не определен?

ответ

1

Строка

' :priority ' 

имеет два дополнительных пространства вокруг имени параметра.

+0

Вот и все! По какой-то причине примеры, на которых я основывал свою работу, казались им. –

Смежные вопросы