【发布时间】:2011-12-26 17:06:51
【问题描述】:
我从 PHP 调用 SQL 存储过程。存储过程检查数据库,如果数据是新的,则插入数据,或者修改已存在的数据。
我收到一个错误,指出我的参数之一的数据类型不正确。由于数据的来源,我无法真正控制这一点。我在一个数据数组中循环调用存储过程数百次或数千次,但我只在批处理中的几条记录中收到此错误。
在存储过程中处理此错误的正确方法是什么?如果任何参数的数据类型不正确,我只想跳过该记录并继续下一条记录。每个调用都来自一个 foreach 循环。
数据库正在报告错误并且 PHP 正在显示它。我没有处理错误的经验。
示例 PHP 代码:
foreach($item_array as $item) {
$id = $item['id'];
$color = $item['color'];
$con = connect()
$query = 'EXECUTE PROCEDURE sp_update_db(:id, :color);'
$params = array(':id' => $id, ':color' => $color);
$stmt = prepare($con, $query);
$result = execute($stmt, $params);
close($con);
}
运行代码我得到“警告:SQL 错误:[存储过程参数的数据类型不正确]”。
【问题讨论】:
标签: php sql stored-procedures advantage-database-server