私はコードをできるだけ効率的にしようとしています。残念ながら、これを行う良い方法を理解できないようです。私はよりきれいに見えるSammitchのコードを使用しようとしましたが、残念ながらうまくいかないようです。
毎回準備、実行、および関数を使用する必要がなくなる方法が欲しいのですが、私にとっては最も理にかなっています。Simmitch の提案を使用して、不要なオーバーヘッドを停止するためにデータベースへの初期接続を削除しましたが、コードはまだ機能しません。"SQLSTATE[HY093]: 無効なパラメーター番号: パラメーターが定義されていません" というエラーが表示されます。
現在の私のコード(一部は不要なので省略):
/*Function to talk to database*/
function doQuery($myDB, $myQuery, $myValues)
{
try
{
$st = $myDB->prepare($myQuery);
$st->execute($myValues);
//echo $success;
}
catch (PDOException $e)
{
echo "Failed because: " . $e->getMessage();
}
}
$db = new PDO('mysql:host=localhost;dbname='dbanme';charset=utf8', 'dbuser', 'dbpass');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Set error mode
$query = "INSERT INTO users(login,pass,email,county) VALUES(:username,:password,:email,:count)";
$values = array('username' => $_POST['username'],
'password' => $_POST['password1'],
'email' => $_POST['email'],
'county' => $_POST['county']
);
doQuery($db, $query, $values);