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

发布于 2022-09-11 19:24:12 字数 510 浏览 16 评论 0

$do = new mysqli($servername, $username, $password, $mysqldb);

$do->query(
      "INSERT INTO `XXX` (
        `add_time`,
        `session`,
        `name`,
        `url`,
        `content`
      )
      VALUES (
        '{$add_time}',
        '{$sessionByName}',
        '{$name}',
        '{$url}',
        '{$content}'
      ) "
    );

最近遇到一个问题,当語句失败后,下面的事情就都不做了
而且不会知道失败的原因
可能是我数据库少了个栏位,或是语句多个栏位或者有错字
导致前端的资料就会跟着不见
如果出现这种事情,能否可以得到判断,假设语句执行失败,我可以做备份动作?或是其他行为

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

擦肩而过的背影 2022-09-18 19:24:12

可以使用php的异常处理

try {
    // try代码块的代码执行错误后会抛出异常
    $do = new mysqli($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的错误,具体的情况你可以自己去查更详细的资料

七禾 2022-09-18 19:24:12

老姐,你太6了,你是我见过提问最多的人了。我一年多前就回答过你问题,然后忘了账号,一直没上,刚刚上来看看又看到你的问题,翻了的提问终于翻到我以前回答过的问题,找回了账号。

回到你的问题,你说的这个叫异常处理,官方文档有很详细的例子。

看:https://www.php.net/manual/en...

献世佛 2022-09-18 19:24:12

取得 当前 lastid来判断..

理论上讲应该自行封装一下,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文