$isbn = strval($_POST['select_catalog']);
$conn = oci_connect($username, $password, $db);
$stmt = oci_parse($conn,
"select title_name, author, pub_name, price, qty_on_hand ".
"from publisher, title ".
"where publisher.pub_no = title.pub_no and ".
"isbn = :bind1");
oci_bind_by_name($stmt, ":bind1", $isbn, 10);
oci_execute($stmt, OCI_DEFAULT);
Вышеприведенный код захватывает ISBN из выпадающего меню выбора при отправке формы, stmt - это мой SQL-запрос, и я использую переменные связывания (но я также попытался просто прямо вставить ISBN)
Проблема, с которой я сталкиваюсь в любом случае, заключается в том, что моя переменная $ isbn задает ее как число, мой SQL-запрос ожидает varchar2, поэтому он должен иметь кавычки вокруг него. Тем не менее, я не могу использовать\для возврата из PHP для размещения кавычек вокруг ": bind1". Когда запрос запущен, вы получаете сообщение об ошибке, вызванное непредвиденным числом. Есть ли способ поставить цитаты вокруг: bind1?
Вам не нужно указывать его
oci_bind_by_name($stmt, ":bind1", (string)$isbn, 10, SQLT_CHR);
попробуйте указать тип и придать параметр строке.
Пытаться:
oci_bind_by_name($stmt, ":bind1", strval($isbn), 10);
oci_bind_by_name