Использование анализа 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) дает идентификатор ресурса...

Что я делаю не так?

 5
Author: Daniel Nill, 2011-11-21

2 answers

НЕ включайте ; в свой SQL. ; не является частью самого SQL, он используется различными клиентами SQL (например, sql*plus) в качестве разделителя для обозначения конца команд, отправляемых на сервер.

 12
Author: Sodved, 2011-11-21 04:01:54

Первая ошибка -

$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 . "'"; 

Если вы хотите сравнить лучшего пользователя "=", чем КАК

 1
Author: Rajan, 2012-08-30 04:55:39