Использование анализа oci и выполнения oci
Я уверен, что это что-то очень простое, но, похоже, я не могу найти свою ошибку.
Я пытаюсь выполнить следующее...
$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)
дает идентификатор ресурса...
Что я делаю не так?
2 answers
НЕ включайте ;
в свой 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 . "'";
Если вы хотите сравнить лучшего пользователя "=", чем КАК