一尘不染

PDO准备好的语句-参数名称中的冒号用于什么?

php

:使用PDO时,我已经看到很多文章在命名参数前使用冒号(),还有一些不使用冒号的文章。我会尽快不使用冒号,只是因为它的按键少了一点,而且读起来也更容易一点。

这似乎对我来说很好,但是我很好奇在使用冒号时是否缺少一些重要的东西?

例如,这很好用:

function insertRecord ($conn, $column1, $comumn2) {
    try {
        $insertRecord = $conn->prepare('INSERT INTO Table1 (column1, column2)
        VALUES(:column1, :column2)');
        $insertRecord->execute(array(
                'column1' => $column1,
                'column2' => $column2
            ));
    }
    catch(PDOException $e) {
        echo $e->getMessage();
    }
}

与大多数使用此功能的开发人员相对,这也可以:

function insertRecord ($conn, $column1, $comumn2) {
    try {
        $insertRecord = $conn->prepare('INSERT INTO Table1 (column1, column2)
        VALUES(:column1, :column2)');
        $insertRecord->execute(array(
                ':column1' => $column1,
                ':column2' => $column2
            ));
    }
    catch(PDOException $e) {
        echo $e->getMessage();
    }
}

注意execute语句参数中的冒号。

我想了解冒号的用途。


阅读 318

收藏
2020-05-26

共1个答案

一尘不染

SQL语句中必须使用冒号,以指示哪些标识符是占位符。

execute()bindParam()调用中的冒号是可选的。文档中对它们进行了说明,但是实现足够聪明,可以弄清楚如果不考虑它们的意思(您还有什么意思?)。

2020-05-26