Discuz教程网

[已解决]在添加的时候怎样让程序不中断呢

 关闭 [复制链接]
authicon 南方蜘蛛 发表于 2013-4-25 16:54:11 | 显示全部楼层 |阅读模式
比如在表里的某字段设有唯一索引,在php执行数据库插入重复数据的时候会抛出一个,然后程序还是往下执行,
但现在discuz是程序不往下执行了
最佳答案
avatar
2013-4-25 23:17:04
南方蜘蛛 发表于 2013-4-25 23:12
我刚才试了下,是把重复的数据替换了,其实我是想能捕获数据库的报错信息,然后下面的程序通过报错信息就 ...

discuz自身应该是没提供捕获数据库的报错信息的,自己研究下Disucz数据库报错相关函数



上一篇:解决CI通过Ucenter整合Discuz 中文用户名无法登录的问题
下一篇:Discuz X2.5注册用户名为空怎么解决
authicon dly 发表于 2013-4-25 19:16:07 | 显示全部楼层
方法一:先判断数据是否存在
方法二:
function insert($table, $data, $return_insert_id = false, $replace = false, $silent = false) {
....
}
$replace参数为true
authicon  楼主| 南方蜘蛛 发表于 2013-4-25 23:12:46 | 显示全部楼层
dly 发表于 2013-4-25 19:16
方法一:先判断数据是否存在
方法二:
$replace参数为true

我刚才试了下,是把重复的数据替换了,其实我是想能捕获数据库的报错信息,然后下面的程序通过报错信息就可以判断出这条记录存在了,从而弹出提示框。
方法一倒是可以,但批量插入的时候,需要判断多次
authicon dly 发表于 2013-4-25 23:17:04 | 显示全部楼层    本楼为最佳答案   
南方蜘蛛 发表于 2013-4-25 23:12
我刚才试了下,是把重复的数据替换了,其实我是想能捕获数据库的报错信息,然后下面的程序通过报错信息就 ...

discuz自身应该是没提供捕获数据库的报错信息的,自己研究下Disucz数据库报错相关函数
authicon  楼主| 南方蜘蛛 发表于 2013-4-25 23:41:43 | 显示全部楼层
dly 发表于 2013-4-25 23:17
discuz自身应该是没提供捕获数据库的报错信息的,自己研究下Disucz数据库报错相关函数

authicon  楼主| 南方蜘蛛 发表于 2013-4-25 23:41:43 | 显示全部楼层
dly 发表于 2013-4-25 23:17
discuz自身应该是没提供捕获数据库的报错信息的,自己研究下Disucz数据库报错相关函数

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-8 17:37

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表