【发布时间】:2015-04-18 10:04:47
【问题描述】:
我目前在运行需要传入字符串参数的查询时遇到问题。通常我会通过将所述字符串直接放入查询本身来规避这种情况,但我想通过清理输入来开始应用适当的安全协议和最佳实践。
这里是查询:
$newAddr->query = "insert into sampleSchema.SampleCustomerAddresses (customer_number, address_id, addr_line1, addr_line2, city, state, zipcode)
values (?,?,?,?,?,?,?)";
我的参数是这样传入的:
$newAddr->parameters = [$CUSTOMER, $addrId, $addrL1, $addrL2, $city, $state, $zip];
$newAddr->performDBCall();
处理参数绑定的代码是这样的:
if (count($this->parameters) != 0){
foreach ($this->parameters as $param) {
db2_bind_param($dbStatement, $i, 'param', DB2_PARAM_IN);
$i++;
}
}
尝试从应用程序运行此查询会产生一个字符转换参数无效错误。
问题是,如何通过 db2_bind_param 传递字符串参数?还是我必须进行单独的清理然后将参数直接添加到查询中?
【问题讨论】:
标签: php string db2 sanitization