🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
query 普通查询,不预编译SQL ~~~ $sql = 'DELETE FROM ' . $db->quoteKey('user') . ' WHERE ' . $db->quoteKey('age') . ' <18 AND ' . $db->quoteKey('sex') . ' = ' . $db->quoteValue('女'); $db = Be::getDb(); $db->query($sql); ~~~ execut 预编译SQL,占位符查询 ~~~ $sql = 'UPDATE ' . $db->quoteKey('user') . ' SET ' . $db->quoteKey('is_deleted') . ' = 1 WHERE ' . $db->quoteKey('age') . ' < ? AND ' . $db->quoteKey('sex') . ' = ?'; $db = Be::getDb(); $db->execute($sql, [18, '女']); ~~~ 执行不成功时获取错误信息 ~~~ try { $sql = 'UPDATE ' . $db->quoteKey('user') . ' SET ' . $db->quoteKey('is_deleted') . ' = 1 WHERE ' . $db->quoteKey('age') . ' < ? AND ' . $db->quoteKey('sex') . ' = ?'; $db = Be::getDb(); $db->execute($sql, [18, '女']); } catch (\Exception $e) { echo $e->getMessage(); exit; } ~~~ 批量执行时可通过预编译 prepare 优化执行效率 ~~~ $db = Be::getDb(); $db->startTransaction(); try { $sql = 'UPDATE ' . $db->quoteKey('user') . ' SET ' . $db->quoteKey('age') . ' = ? WHERE ' . $db->quoteKey('username') . ' = ?'; $db->prepare($sql); $data = [ [40, '大哥'], [35, '二哥'], [30, '三哥'], [25, '四哥'], ]; foreach($data as $x) { $db->execute(null, $x); } $db->commit(); } catch (\Exception $e) { $db->rollback(); echo $e->getMessage(); exit; } ~~~