我修改了我的代碼,但找不到錯誤,這看起來很簡單,但從查看代碼中看不到任何東西。誰能幫我?非常感謝你。SQLSTATE [HY093]:無效的參數編號:參數未使用PDO定義
這和更新記錄
// update modelo
public function alteraModelo($modelo){
try{
// monta consulta SQL para atualização do registro
$sql = "UPDATE modelos SET
nome = :nome,
fone = :fone,
email = :email,
face = :face,
altura = :altura,
peso = :peso,
idade = :idade,
categoria = :categoria,
data_fotos = :data_fotos";
if($_FILES['foto1']['size'] > 0){
$sql .= "foto1 = :foto1,";
}
if($_FILES['foto2']['size'] > 0){
$sql .= "foto2 = :foto2,";
}
if($_FILES['foto3']['size'] > 0){
$sql .= "foto3 = :foto3,";
}
if($_FILES['foto4']['size'] > 0){
$sql .= "foto4 = :foto4,";
}
if($_FILES['foto5']['size'] > 0){
$sql .= "foto5 = :foto5,";
}
if($_FILES['foto6']['size'] > 0){
$sql .= "foto6 = :foto6,";
}
$sql .="link_video = :link_video
WHERE id = :id";
// prepara consulta para o PDO
$stmt = $this->prepare($sql);
$data = Util::dataToSql($modelo['data_fotos']);
// seta os parametros
$stmt->bindParam(":data_fotos", $data);
$stmt->bindParam(":nome", $modelo['nome']);
$stmt->bindParam(":fone", $modelo['fone']);
$stmt->bindParam(":email", $modelo['email']);
$stmt->bindParam(":face", $modelo['face']);
$stmt->bindParam(":altura", $modelo['altura']);
$stmt->bindParam(":peso", $modelo['peso']);
$stmt->bindParam(":idade", $modelo['idade']);
$stmt->bindParam(":link_video", $modelo['link_video']);
$stmt->bindParam(":categoria", $modelo['categoria']);
if($_FILES['foto1']['size'] > 0){
//Se a foto for atualizada
$registro_antigo = $this->getModeloById($modelo['id']);
//Remove o arquivo
@unlink($registro_antigo['foto1']);
$arquivo1 = "upload/" . date('YmdHis') . "_" . $_FILES['foto1']['name'];
move_uploaded_file($_FILES['foto1']['tmp_name'], APPLICATION_PATH . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . $arquivo1);
$stmt->bindParam(":foto1", $arquivo1);
}
if($_FILES['foto2']['size'] > 0){
//Se a foto for atualizada
$registro_antigo = $this->getModeloById($modelo['id']);
//Remove o arquivo
@unlink($registro_antigo['foto2']);
$arquivo2 = "upload/" . date('YmdHis') . "_" . $_FILES['foto2']['name'];
move_uploaded_file($_FILES['foto2']['tmp_name'], APPLICATION_PATH . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . $arquivo2);
$stmt->bindParam(":foto2", $arquivo2);
}
if($_FILES['foto3']['size'] > 0){
//Se a foto for atualizada
$registro_antigo = $this->getModeloById($modelo['id']);
//Remove o arquivo
@unlink($registro_antigo['foto3']);
$arquivo3 = "upload/" . date('YmdHis') . "_" . $_FILES['foto3']['name'];
move_uploaded_file($_FILES['foto3']['tmp_name'], APPLICATION_PATH . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . $arquivo3);
$stmt->bindParam(":foto3", $arquivo3);
}
if($_FILES['foto4']['size'] > 0){
//Se a foto for atualizada
$registro_antigo = $this->getModeloById($modelo['id']);
//Remove o arquivo
@unlink($registro_antigo['foto4']);
$arquivo4 = "upload/" . date('YmdHis') . "_" . $_FILES['foto4']['name'];
move_uploaded_file($_FILES['foto4']['tmp_name'], APPLICATION_PATH . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . $arquivo4);
$stmt->bindParam(":foto4", $arquivo4);
}
if($_FILES['foto5']['size'] > 0){
//Se a foto for atualizada
$registro_antigo = $this->getModeloById($modelo['id']);
//Remove o arquivo
@unlink($registro_antigo['foto5']);
$arquivo5 = "upload/" . date('YmdHis') . "_" . $_FILES['foto5']['name'];
move_uploaded_file($_FILES['foto5']['tmp_name'], APPLICATION_PATH . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . $arquivo5);
$stmt->bindParam(":foto5", $arquivo5);
}
if($_FILES['foto6']['size'] > 0){
//Se a foto for atualizada
$registro_antigo = $this->getModeloById($modelo['id']);
//Remove o arquivo
@unlink($registro_antigo['foto6']);
$arquivo6 = "upload/" . date('YmdHis') . "_" . $_FILES['foto6']['name'];
move_uploaded_file($_FILES['foto6']['tmp_name'], APPLICATION_PATH . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . $arquivo6);
$stmt->bindParam(":foto6", $arquivo6);
}
$stmt->bindParam(":id", $modelo['id']);
// atualiza registro
$stmt->execute();
} catch (Exception $e){
echo $e->getMessage();
}
}
你需要在'data_fotos =:data_fotos'之後加一個逗號;' - 你在下面幾行中獲得了更多的SQL到'$ sql'的末尾,但它會直接添加到':data_fotos'。 – andrewsi
是的你是對的,這只是一個「逗號」不見了,但我覺得我的眼睛很累,而且他很注重點,或者更確切地說是一個逗號,非常感謝你 – user2199629
有時它只是需要一個額外的眼睛,我很高興有幫助 – andrewsi