В настоящее время я отправляю сообщения о формах для учета одинарных кавычек и прочего мусора.
$form_field_value= str_replace("'", "''", stripslashes($form_field_value));
Это подготовить значение для вставки, используя:
$insert_sql = "insert into table (field) values ('".$form_field_value."')";
odbc_exec($conn, $insert_sql);
По сути, я хочу использовать заполнители для этих операторов вставки / обновления.
Я попытался определить $par1
и $par2
как литералы, а затем выполнить
$insert_sql = "insert into table (field,txt) values (?,?)";
odbc_exec($conn, $insert_sql, $par1, $par2);
Не удалось и дал мне эту ошибку:
Предупреждение: odbc_exec () [function.odbc-exec]: ошибка SQL: [Microsoft] [Драйвер ODBC SQL Server] Поле COUNT неверно или синтаксическая ошибка, состояние SQL 07001 в SQLExecDirect в test.php в строке 10
Строка 10 - это выражение exec.
Я не могу найти синтаксис для использования заполнителей с этим драйвером odbc. Есть предложения?
Переменная подключения $conn
работает нормально.
EDIT:
Последняя попытка все еще не удалась - odbc_execute () - неопределенная функция. Я должен использовать odbc_exec ()
$par1="eggs";
$par2="milk";
$insert_crs = "insert into table (field,txt) values (?,?)";
$stmt = odbc_prepare($conn, $insert_sql);
odbc_exec($stmt, array($par1, $par2));