1
以下準備陳述之間有什麼主要區別?爲什麼更喜歡哪一個?mysql準備了哪些陳述我應該使用
1:
$stmt = $db->prepare("INSERT INTO users(userName) VALUES (:user)");
$user = "Steve";
$stmt->bindParam(':user', $user);
$stmt->execute();
2:
$stmt2 = $db->prepare('INSERT into users(userName) VALUES(:user)');
$stmt2->execute(array(':user'=>'Steve'));
唯一的區別是'bindParam'可以綁定「輸出參數」,如果您正在使用返回值的存儲過程。 Docs:http://www.php.net/manual/en/pdostatement.bindparam.php –
從1到2的不同之處在於,1允許指定任何用戶($ user),如果該代碼在函數中的某處版本2是硬編碼的。我個人更喜歡1,因爲我來自冗長的編碼風格陣營 - 但簡潔的編碼也可以,只要它的可讀性和評論。 – robnick