когда я читаю этот абзац
Любые параметры в parameter_array, которые начинаются и заканчиваются одинарными кавычками, будут приниматься как имя файла для чтения и отправки на сервер базы данных в качестве данных для соответствующего заполнителя.
Если вы хотите сохранить строку, которая фактически начинается и заканчивается одинарными кавычками, вы должны добавить пробел или другой символ, не заключенный в одинарные кавычки, в начало или конец параметра, что предотвратит принятие параметра как имя файла Если это не вариант, вы должны использовать другой механизм для хранения строки, например, выполнить запрос напрямую с помощью odbc_exec ()).
Мне кажется, что нет необходимости добавлять одинарные кавычки '
в строку, только если вы действительно хотите иметь кавычки в виде текста в БД
Поэтому, если бы я только хотел вставить текст, без одинарных кавычек я бы написал что-то подобное ...
см. Этот пример из odbc-prepare
http://www.php.net/manual/en/function.odbc-prepare.php
Use this example for IBM DB/2:
$q = "update TABLE set PASS=? where NAME=?";
$res = odbc_prepare ($con, $q);
$a = "secret"; $b="user";
$exc = odbc_execute($res, array($a, $b));
Это приведет к следующему утверждению
$pstmt=odbc_prepare($odb_con,"select * from configured where param_name=?");
$name = "version";
$params = array($name);
$res=odbc_execute($pstmt,$params);
var_dump($res); //bool(true)
$row = odbc_fetch_array($pstmt);
var_dump($row); //bool(false)
Обратите внимание, что я не только удалил квот для значения в массиве params, но также удалил квот в операторе SQL .
Пожалуйста, дайте отзыв, если это было правильно