2010-04-20 6 views
2

Un de here:Quelle est la bonne façon d'utiliser PDO en PHP?

$sth->execute(array(':calories' => $calories, ':colour' => $colour)); 

L'autre de here:

/*** reassign the variables again ***/ 
$data = array('animal_id'=>4, 'animal_name' => 'bruce'); 

/*** execute the prepared statement ***/ 
$stmt->execute($data); 

Ma question est: :key ou key? Désolé, je n'ai pas l'environnement PHP ici.

Répondre

1

Je certainement faire confiance php.net plus phpro.org;)

Cependant, dans le same php.net page:

Un tableau de valeurs d'insertion (paramètres nommés) ne ont pas besoin du côlon préfixé aussi la valeur-clé pour travailler.

0

Les deux méthodes sont correctes et les deux exemples fonctionnent correctement.

Vous pouvez lire à ce sujet dans (les commentaires des utilisateurs) Manuel: http://www.php.net/manual/en/pdostatement.execute.php#71929

+0

Avez-vous vérifié cela? – Gtker

+0

Oui, mais je préfère http://www.php.net/manual/fr/pdostatement.bindparam.php @Macmade a écrit une réponse importante, vous devriez lire. –

+0

Pouvez-vous préciser quelle est cette erreur si une variable est nommée avec un mot-clé réservé? – Gtker

2

Les deux sont valables, mais nous vous encourageons à utiliser la: la notation clé, car elle peut éviter certaines erreurs, si vous nommez une variable avec un mot-clé réservé, par exemple ...

+0

Pouvez-vous élaborer les erreurs? – Gtker

+0

Juste un exemple (très) stupide, donc vous pouvez voir ce que je veux dire ...; $ q = $ pdo-> prepare ('SELECT * FROM table OERE O WH'); $ q-> execute (array ('WHERE' => '1')); – Macmade

+1

Il parlait du tableau avec des noms de paramètres et des valeurs, pas de la requête. – binaryLV

0

J'utilise la seconde manière, par exemple,

$query = 'insert into user (username, password) values (:username, :password)'; 
$param = array('username' => $username, 'password' => $password);

$ param pour cet exemple peut parfois être fait comme compact('username', 'password') - me semble à portée de main pour.

+0

Je ne vois pas ce que vous entendez par 'compact ('nom d'utilisateur', 'mot de passe')' – Gtker

+1

Il parle de La fonction [compacte] de PHP (http://php.net/manual/en/function.compact.php) –

Questions connexes