Я уверен, что это что-то очень простое, но я не могу найти свою ошибку.
Я пытаюсь выполнить следующее …
$c = db_connect(); $email = addslashes($email); $sql = "SELECT * FROM RUSER WHERE email LIKE '" . $email . "';"; $query = oci_parse($c, $sql) or die(oci_error($c)); $response = oci_execute($query) or die(oci_error($c));
но я получаю oci8 statement Warning: oci_execute(): ORA-00911: invalid character in /path/to/file.php on line 67
где строка 67 соответствует $response
.
Значит, что-то не так с $query
? Но я не могу найти, что бы это было. Необработанный sql выполняется отлично из командной строки. get_resource_type($query)
дает идентификатор ресурса …
Что я делаю не так?
НЕ включайте ;
в вашем SQL. ;
не является частью самого SQL, его используют различные SQL-клиенты (например, sql * plus) в качестве разделителя, чтобы отметить конец команд, которые должны быть отправлены на сервер.
Первая ошибка
$c = oci_connect("user","password","host/dbname") // db_connect() is not true
вторая ошибка не должна быть «;» в заявлении
$sql = "SELECT * FROM RUSER WHERE email LIKE '" . $email . "';";
должен быть
$sql = "SELECT * FROM RUSER WHERE email LIKE '" . $email . "'";
если вы хотите сравнить лучшего пользователя «=», чем LIKE