目前,我正在大量提交表单以解决单引号和其他垃圾问题。
$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
and定义$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 Driver]COUNT 字段不正确或语法错误,第 10 行 test.php 中 SQLExecDirect 中的 SQL 状态 07001
第 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));