小编Moh*_*jib的帖子

如何在PHP中有效地使用try ... catch块

我一直在我的PHP代码中使用try..catch块,但我不确定我是否一直在正确使用它们.

例如,我的一些代码如下所示:

 try {
      $tableAresults = $dbHandler->doSomethingWithTableA();
      $tableBresults = $dbHandler->doSomethingElseWithTableB();
 } catch (Exception $e) {
      return $e;
 }
Run Code Online (Sandbox Code Playgroud)

所以我在同一个try/catch块中对多个数据库操作进行分组,因为如果在任何事务中发生任何异常,我将能够处理它.

我这样做是因为我认为它比以下更具可读性和效率:

 try {
       $tableAresults = $dbHandler->doSomethingWithTableA();
 } catch (Exception $e) {
       return $e;
 }
 try {
       $tableBresults = $dbHandler->doSomethingWithTableB();
 } catch (Exception $e) {
       return $e;
 }
Run Code Online (Sandbox Code Playgroud)

虽然,我不确定我所做的是一种好的做法,还是一种懒惰的方法来捕捉异常.

我的假设是,只有异常需要特殊处理时,它才应该有自己的try/catch块,否则将它们分组到同一个try/catch中应该没问题.

所以我的问题是:

每个数据库事务使用try/catch块有什么好处吗?或者我仍然可以在同一个try/catch块中对多个数据库事务进行分组而没有任何问题?

嵌套try/catch块可以吗?谢谢!

编辑

return语句主要仅用于演示目的,但我也使用了返回,catch()因为我正在向该方法发出AJAX请求,而Javascript期待一个JSON对象,然后如果发生异常,我返回一个空的JSON编码数组.我只是认为在我的示例中放置特定代码不会增加任何值.

php exception-handling try-catch

75
推荐指数
5
解决办法
12万
查看次数

使用jQuery创建嵌套HTML元素的最佳方法

如果我需要创建几个嵌套的DOM元素,我知道一种方法,就是将它们写成长字符串,然后使用合适的jQuery函数将它们放在文档中.就像是:

elem.html(
'<div class="wrapper">
    <div class="inner">
        <span>Some text<span>
    </div>
    <div class="inner">
        <span>Other text<span>
    </div>
</div>'); 
Run Code Online (Sandbox Code Playgroud)

这种方式显然不是最干净的.刺痛并不需要太长时间来弄乱,编辑就成了问题.我更喜欢这种表示法:

$('<div></div>', {
    class : 'inner'
})
.appendTo( elem );
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何在上面动态创建嵌套元素时有效地实现它.因此,如果有第二个符号的第一个例子,我会很高兴了解它.

基本上,问题是,什么是动态创建嵌套HTML元素的最佳方法,而不必处理凌乱的长字符串?

注意:我知道模板引擎.然而,这是一个关于动态创建几个HTML元素的问题.就像为插件或类似案例构建DOM依赖项时一样.

javascript jquery dom nested

50
推荐指数
5
解决办法
5万
查看次数

"忽略对其他数据库的查询"命令行

在命令提示符下执行任何查询时,我一直收到这个奇怪的消息MySQL.

ignoring query to other database
Run Code Online (Sandbox Code Playgroud)

我已经尝试通过发出"use database_name"命令来更改数据库.

mysql

44
推荐指数
1
解决办法
3万
查看次数

Bcrypt如何比md5 +盐更好?

请阅读更新,因为我的"实际混淆"在那里.

自从Joomla以来,它一直很安静!开始支持bcrypt哈希算法,以及md5 + salt自Joomla以来一直是事实!1.5.

现在我的问题是"作为最终用户,如果我立即开始使用Bcrypt,我会得到什么好处,与当前的算法相比,这MD5 + salt对于每天有几百个访问者的普通博客是否有任何影响?"

更新: -

此外,我在某处读到,由于md5哈希的速度,我的密码可以在几天内/几个月内轻松计算出来.

但这不需要我的哈希已经与攻击者进行比较吗?如果他/她首先没有哈希,那么我使用的哈希算法如何影响我的网站安全性呢?最终他最终还是不得不向我的登录页面发布Brute Force?

如果它是由Brute强制推进,那么它是否Bcrypt同样容易受到密码猜测的影响?

注意:为什么是downvotes,这是最终用户的逻辑关注点.:(

php hash joomla md5 bcrypt

6
推荐指数
2
解决办法
8830
查看次数

6
推荐指数
1
解决办法
7718
查看次数

如何正则表达式匹配整个字符串而不是单个字符

我想实现在阿拉伯字母的字符输入“阿尔法”的验证,使用JavaScript正则表达式/[\u0600-\u06FF]/的指示在这个职位。我只想接受阿拉伯字母字符和空格。

现在的问题是它给出了以下结果:

r = /[\u0600-\u06FF]/

r.test("abcd")      // false - correct
r.test("@#$%^")     // false - correct
r.test("?")         // true  - correct
r.test("abcd$$#5?") // true  - should be false
r.test("abcd?")     // true  - should be false
Run Code Online (Sandbox Code Playgroud)

如果给出单个匹配字符,则它将整个输入归类为可接受的,即使输入的其余部分充满了不可接受的字符。我应该使用什么正则表达式?

javascript regex validation arabic

3
推荐指数
1
解决办法
3072
查看次数

用户标志后的mysql连接空格

我有一个问题,mysql 连接字符串中用户标志后面的空格有什么意义-u

mysql -u myname -pmypass mydb
Run Code Online (Sandbox Code Playgroud)

我的意思是说,上面的命令工作得很好,如果我没有在后面传递一个空格-u并且只写上面的命令如下。

mysql -umyname -pmypass mydb
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下搜索词来搜索解释。

  • mysql login whitespace after user flag
  • mysql connection console whitespace after user flag

我发现在密码标志后提到了空格-p这里。但是页面没有讨论用户标志之后的空格-u

.... -p 或 --password= 和后面的密码之间不能有空格。

mysql console command-line

3
推荐指数
1
解决办法
742
查看次数

Ansible 将值传递给安装命令行 GUI

如何将值传递给命令行 GUI 提示符?

就像我通常使用以下命令在新的 Ubuntu 上安装 LAMP 一样。

sudo apt-get  install lamp-server^ phpmyadmin
Run Code Online (Sandbox Code Playgroud)

在安装过程中,我被要求提供一些输入,如下所示

命令行安装提示

那么如何从剧本中传递/输入值呢?

ansible

3
推荐指数
1
解决办法
3357
查看次数

Certbot Multiple plugin:使用一个插件进行身份验证并使用另一个插件进行配置

我正在使用 certbot 的 cloudflare 插件为我的域生成通配符证书。

现在我也想使用--apache插件来更新 apache 配置。

我尝试运行以下命令

certbot -d example.in -d *.example.in --dns-cloudflare --apache
Run Code Online (Sandbox Code Playgroud)

显然,该应用程序抛出以下错误。

Too many flags setting configurators/installers/authenticators 'apache' -> 'dns-cloudflare'
Run Code Online (Sandbox Code Playgroud)

我需要 cloudflare 插件来自动验证通配符 dns,但同时我还需要 apache 插件来自动设置配置。

这可以实现吗?如果可以,如何实现?

lets-encrypt certbot

3
推荐指数
1
解决办法
591
查看次数

如何删除Laravel中的重复行

我需要在mysql表上删除指定移动号码的重复行.如何使用Laravel查询执行此操作?

php laravel laravel-5.2

2
推荐指数
2
解决办法
9498
查看次数