需要PHP中DB2语句之类的绑定示例吗

需要PHP中DB2语句之类的绑定示例吗,php,db2,prepared-statement,Php,Db2,Prepared Statement,我正在尝试做类似的事情 $sql = "SELECT * FROM foo WHERE user = ? AND order LIKE ?%" $stmt = db2_prepare($conn, $sql); db2_bind_param($stmt, 1, "userName", DB2_PARAM_IN); db2_bind_param($stmt, 2, "orderNum", DB2_PARAM_IN); db2_execute($stmt); 当然,这不是正确的方式,就像?%。

我正在尝试做类似的事情

$sql = "SELECT * FROM foo WHERE user = ? AND order LIKE ?%"
$stmt = db2_prepare($conn, $sql);

db2_bind_param($stmt, 1, "userName", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "orderNum", DB2_PARAM_IN);

db2_execute($stmt);

当然,这不是正确的方式,就像?%。我只是在寻找一种正确的方法来绑定这样的参数,但也要使用%通配符。

只要在字符串中使用通配符来粘贴参数即可。您将需要执行以下操作:


当我这样尝试时,给出了两个错误,“Value Not Bound”和“Bind Error 3”,在db2_execute($stmt)My bad的行中,我没有意识到第三个参数实际上是绑定值的变量名(我从未真正将db2与PHP结合使用)。我已经更新了一些我认为应该有效的答案。基本上,通配符应该在绑定到参数的任何内容中。数据库引擎应该将绑定值全部粘贴到参数标记处的查询中。
$sql = "SELECT * FROM foo WHERE user = ? AND order LIKE ?"
$orderNum = '%' . $your_order_num . '%';
db2_bind_param($stmt, 2, "orderNum", DB2_PARAM_IN);