在PHP中使用PDO的正确方法是什么?

在PHP中使用PDO的正确方法是什么?,php,syntax,pdo,Php,Syntax,Pdo,其中一人来自: 另一份来自: 我的问题是::key或key 很抱歉,我这里没有PHP环境。我肯定更信任PHP.net而不是phpro.org;) 然而,在下列情况下: 插入值数组(命名参数)不需要前缀冒号als键值即可工作 两种方法都是正确的,两个示例都运行正确 您可以在手册(用户评论)中了解这一点:两者都是有效的,但是建议您使用:键符号,因为如果您使用保留关键字命名变量,它可以防止一些错误,例如…我使用第二种方法,即 $query = 'insert into user (username,

其中一人来自:

另一份来自:

我的问题是:
:key
key


很抱歉,我这里没有PHP环境。

我肯定更信任PHP.net而不是phpro.org;)

然而,在下列情况下:

插入值数组(命名参数)不需要前缀冒号als键值即可工作


两种方法都是正确的,两个示例都运行正确


您可以在手册(用户评论)中了解这一点:

两者都是有效的,但是建议您使用:键符号,因为如果您使用保留关键字命名变量,它可以防止一些错误,例如…

我使用第二种方法,即

$query = 'insert into user (username, password) values (:username, :password)'; $param = array('username' => $username, 'password' => $password); $query='插入用户(用户名、密码)值(:用户名、密码)'; $param=array('username'=>$username,'password'=>$password);
在这个例子中,$param有时可以做成
compact('username','password')
-对我来说似乎很方便。

我不明白你所说的
compact('username','password')
他说的是PHP的函数是的,但我更喜欢@macmake写的重要答案,你应该读到。如果一个变量用保留关键字命名,你能详细说明那个错误是什么吗?只是一个(非常)愚蠢的例子,所以你可以理解我的意思…;)$q=$pdo->prepare('SELECT*FROM table WHERE')$q->execute(数组('WHERE'=>'1'));他说的是带有参数名和值的数组,而不是查询。我不认为在任何情况下使用
表单都会导致问题,因为您只能在数据数组中使用此表单,而不能在查询中使用,如@binaryLV所述$q=$pdo->prepare('SELECT*FROM table WHERE')$q->execute(数组('WHERE'=>'1');将不起作用。
/*** reassign the variables again ***/
$data = array('animal_id'=>4, 'animal_name' => 'bruce');

/*** execute the prepared statement ***/
$stmt->execute($data);
$query = 'insert into user (username, password) values (:username, :password)'; $param = array('username' => $username, 'password' => $password);