Здесь ниже вы можете увидеть мой код.
Я перечитывал свой код много раз и не вижу ошибки.
Ошибка
SQLSTATE [HY093]: недопустимый номер параметра: количество связанных переменных не соответствует количеству токенов
Мой код ниже (ошибка возникает при выполнении запроса внутри переменной $ sqlUpUser).
<?php
require '../shared/geolocation.php';
$user="db686186_adm";
$pass="#+-7en!Z";
try{
$coordinates = getCoordinates($adress);
if($coordinates["geolocationSuccessful"]){
$dbh = new PDO('mysql:host=nhl-mysqlw01;dbname=db686186', $user, $pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sqlUpUser = "UPDATE users SET "
. "country=:country, "
. "adress=:adress, "
. "email=:email, "
. "phone=:phone, "
. "skype=:skype, "
. "lat=:lat, "
. "`long`=:long "
. "WHERE id=".$_SESSION['id'];
$stmt = $dbh->prepare($sqlUpUser);
$stmt->bindParam(':country', $country, PDO::PARAM_STR);
$stmt->bindParam(':adress', $adress, PDO::PARAM_STR);
$stmt->bindParam(':email', $email,PDO::PARAM_STR);
$stmt->bindParam(':phone', $phone,PDO::PARAM_STR);
$stmt->bindParam(':skype', $skype,PDO::PARAM_STR);
$stmt->bindParam(':lat', $coordinates["latitude"], PDO::PARAM_STR);
$stmt->bindParam(':long', $coordinates["longitude"], PDO::PARAM_STR);
$stmt->execute();
$stmt->closeCursor();
}else{
$_SESSION["emailExist"] = constant($coordinates["errorMessage"]);
header("Location:/profile/");
return;
}
}catch(Exception $e){
printf($e->getMessage());
}
$dbh = null;