Member 13864537 Ответов: 1

Как сделать функцию обновления с помощью pdo ООП


 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' on line 25
 

any one can help please?


function update($table,$data,$id){

 	global $conn;

  $resultstr = array();

  foreach ($data as $keys => $value) {

 	$resultstr[] = $keys."=:".$keys;


  }
 	
  $values = implode(",",$resultstr);

   $sql ="Update ".$table." SET ".$values."WHERE id=:id";

   
   
   $query =  $conn->prepare($sql);

   $query->bindParam(':id',$id);

   foreach($data as $key=>$val){
        $query->bindValue(':'.$key,$val);
        
    }
    $updateData = $query->execute();
     
   
   
   return $updateData;

 }


Что я уже пробовал:

попробуйте сделать функцию обновления .... но получать ошибки

Richard MacCutchan

Посмотрите на строку 25 и проверьте значения переменных, на которые пытается ссылаться ваш код.

1 Ответов

Рейтинг:
0

Jochen Arndt

Чтобы проверить, что пошло не так, просто распечатайте $sql строка и проверьте, является ли она допустимой командой SQL.

Ошибка, вероятно, вызвана отсутствующим пробелом перед WHERE ключевое слово. Так что измените это на

$sql ="Update ".$table." SET ".$values." WHERE id=:id";
// Insert space here                    ^

Другие возможные источники ошибок заключаются в том, что один или несколько ваших $keys содержит запятую или пробел.