小编joe*_*e92的帖子

PDO:将额外参数传递给准备好的参数而不是需要

您是否可以使用PDO向准备好的语句发送超出需要的参数而没有不良副作用?

这可能看起来像一个奇怪的问题,但我问,因为我连续4个查询,它们都使用相似和不同的参数.查询的相关部分:

第1名(选择,与其他人不同):
WHERE threadID = :tid

第二(选择):
WHERE user_ID = :u_ID AND thread_ID = :tid

第3次(如果第2次成功则更新):
SET time = :current_time WHERE user_ID = :u_ID AND thread_ID = :tid

第4次(如果第二次失败则插入):
VALUES (:u_ID, :tid, :current_time)

我可以在开头声明一个带有三个参数的数组,并将其用于所有4个查询吗?

为了解决任何混淆,查询将单独执行.它是重用的参数变量,因此这意味着某些查询将接收它们不需要的参数.所以类似于:

$parameters = array(':tid' => $tid, ':u_ID' => $u_ID, ':current_time' => $time);

$1st = $db->prepare($query1);
$1st->execute($parameters);

$2nd = $db->prepare($query2);
$2nd->execute($parameters);

$3rd = $db->prepare($query3);
$3rd->execute($parameters);

$4th = $db->prepare($query4);
$4th->execute($parameters);
Run Code Online (Sandbox Code Playgroud)

如果可以的话,我应该吗?这会减慢或导致我的数据库或脚本的安全漏洞吗?

如果我能让这个问题更清楚一点,请问.

谢谢!

pdo prepared-statement

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

PHP使用变量调用命名空间

是否可以使用变量调用名称空间?

例如:

$class_name     = strtolower( $interface_name );
$return['html'] = \interfaces\$class_name::get_loginForm();
Run Code Online (Sandbox Code Playgroud)

但是,这会返回错误:

解析错误:语法错误,意外的“$class_name”(T_VARIABLE),期望标识符(T_STRING)

我正在连接到几个第三方 API,它们都做同样的事情,但以自己独特的方式。用户在加入我们的网站之前就已经连接到他们首选的 API。不同 API 的中间件将存储在同一命名空间下的定制文件中。

可以解决在接口名称上运行开关并调用相关命名空间的问题,但这意味着每次新 API 出现时都必须定位并添加到开关,因此解决此问题的任何帮助都将是受到赞赏。干杯。

php variables scope namespaces class

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

表中的第一个子选择器

我创建了一个页面,它是三个独立网站的登录门户.在此页面上,我向所述网站显示了三个登录门户.我试图用css和尽可能少的课程来设计它(我需要微调我的CSS技能).

我创建的是一个包含三行和两列的表,名为loginPortals:

<table class="loginPortals">
    <tbody>
        <tr>
            <td>Picture 1</td>
            <td>Login form 1</td>
        </tr>
        <tr>
            <td>Picture 2</td>
            <td>Login form 2</td>
        </tr>
        <tr>
            <td>Picture 3</td>
            <td>Login form 2</td>
        </tr>
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我刚刚开始制作桌子的样式,所以它非常不完整,但我已经在努力了.这是简化的,因为我不确切地知道它的外观.基本上,我想在每一行之间出现某种边界.以下并不是我想要的那样:

.loginPortals{
    width:100%;
}
    .loginPortals tbody:first-child td{
        border-top:1px solid #000;
    }
    .loginPortals tbody tr td{
        border-bottom:1px solid #000;
        padding:1em 0;
    }
Run Code Online (Sandbox Code Playgroud)

第一个孩子选择器没有像我想象的那样工作.它将顶部边框应用于所有行中的所有单元格.这导致线条厚度在行的中间加倍.

如何解决此问题,以便顶部边框仅应用于顶行而不创建额外的类或应用任何内联样式.

谢谢!

html css css-selectors

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