Bạn đang thiếu một số trình giữ chỗ trong thông số liên kết của mình, hãy kiểm tra chúng cẩn thận
$sql->bindParam(":address1", $_POST['address1'],PDO::PARAM_STR);
$sql->bindParam(":address2", $_POST['city'],PDO::PARAM_STR);
//address2 was missed, probably error is column doesn't match values
$sql->bindParam(":email", $_POST['email'],PDO::PARAM_STR); //supposed to be mail
$sql->bindParam(":imea", $_POST['imea'],PDO::PARAM_STR); //supposed to be iama
Bạn có thể muốn kiểm tra pdo errors
, đây là một ví dụ được lấy từ thủ công
$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Với thuộc tính này được thêm vào một cách chính xác, pdo sẽ thông báo cho bạn nếu có bất kỳ lỗi nào xảy ra