У меня был следующий фрагмент кода с подготовленными PDO утверждениями :
$stmt = $conn->prepare('SELECT `myColumn1` FROM my_table '.
'WHERE `myColumn2`=:val LIMIT 1');
$stmt->bindValue(":val", $value);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
Это прекрасно работает.Он отправляет следующий запрос:
113 Query SELECT `myColumn1` FROM my_table WHERE `myColumn2`=":val" LIMIT 1
и возвращает правильное значение.
Но это не сработает, если я изменю первую строку на
$stmt = $conn->prepare('SELECT `myColumn1` FROM my_table '.
'WHERE `myColumn2`=":val" LIMIT 1');
или
$stmt = $conn->prepare('SELECT `myColumn1` FROM my_table '.
'WHERE `myColumn2`=':val' LIMIT 1');
Отправляется тот же запрос, но PDO возвращает false.
Кто-нибудь может объяснить, почему?