猿问

当 mysqli 語句失败时的當下处理?

$do=newmysqli($servername,$username,$password,$mysqldb);
$do->query(
"INSERTINTO`XXX`(
`add_time`,
`session`,
`name`,
`url`,
`content`
)
VALUES(
'{$add_time}',
'{$sessionByName}',
'{$name}',
'{$url}',
'{$content}'
)"
);
最近遇到一个问题,当語句失败后,下面的事情就都不做了而且不会知道失败的原因可能是我数据库少了个栏位,或是语句多个栏位或者有错字导致前端的资料就会跟着不见如果出现这种事情,能否可以得到判断,假设语句执行失败,我可以做备份动作?或是其他行为
青春有我
浏览 339回答 2
2回答

达令说

可以使用php的异常处理try{//try代码块的代码执行错误后会抛出异常$do=newmysqli($servername,$username,$password,$mysqldb);$do->query('xxx');}catch(Exception$e){//这里的$e就是捕捉到上面try代码块抛出的错误异常//$e中包含错误信息,使用$e->getMessage()可以获取错误描述,$e->getCode()获取错误码//catch代码块一般用来处理正常逻辑失败后的错误处理,比如打log之类的}另外,php的异常有点特别,php中的不正常运行终止大致分两种类型,一种是错误,一种就是异常,由于历史原因,php很多自带的函数是不抛异常而是报错误的,即无法使用try...catch来处理这种情况,但是php7新增了throwable可以捕捉到php的错误。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答