У меня проблема с этим кодом, и я не могу понять, где проблема.Поэтому, когда я запускаю этот код: if $row["count"] > 0
запускается блок else
и устанавливается $_SESSION["error"]
.
Когда выполняется запрос $row["count"] == 0
и новая строка вставляется в базу данных, но установлены и $_SESSION["save"]
, и $_SESSION["error"]
!Означает ли это, что выполняются операторы if
и else
?Это не имеет никакого смысла для меня ...
$stmt = $pdo->prepare("SELECT COUNT(*) AS count ... QUERY");
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if( $row["count"] == 0 ){
$stmt = $pdo->prepare("INSERT...QUERY");
$stmt->execute();
$_SESSION["save"] = "Saved";
header("Location:index.php");
exit();
}else{
$_SESSION["error"] = "Error";
header("Location:index.php");
exit();
}
Я использую этот код в index.php
$save = (isset($_SESSION["save"]))? $_SESSION["save"] : false;
$error = (isset($_SESSION["error"]))? $_SESSION["error"] : false;
unset($_SESSION["error"]);
unset($_SESSION["save"]);
Как я уже сказал, когда $row["count"] == 0
у меня есть$save
и $error
set ..
решено
Кажется, я обнаружил проблему.Я изменил способ доступа к сценарию с:
<a href='script.php?id=10'><input type="button" value='Go to script' /></a>
на:
<a href='script.php?id=10'>Go to script</a>
И сценарий работает.С тегом кнопки ввода внутри тега скрипт вел себя непредсказуемо, выполняя оператор if
и else
в одно и то же время. Я все еще не понимаю, почему и как тег ввода вызвал это, но, по крайней мере, скрипт работаетсейчас ...