В настоящее время я приправляю формы, чтобы учесть одинарные кавычки и прочий мусор.
$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
работает нормально.
РЕДАКТИРОВАНИЕ:
Последняя попытка все еще не удалась - 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));