次の例のように、パラメータ化されたクエリを使用することをお勧めします。
<?php
try {
$usernann2 = "whateverUsernameFits";
$date = new DateTime('2000-01-01');
$stmt = $this->db->prepare ( "INSERT INTO 63_Activity (username, time) VALUES (:usernann2, :date)");
$stmt->bindParam ( ':usernann2', $usernann2 );
$stmt->bindParam ( ':date', $date );
$stmt->execute ();
}catch ( PDOException $e )
{
throw new Exception ( $this->db->errorInfo () . 'Problem inserting object ' );
} catch ( Exception $e ) {
throw new \Exception ( 'Problem inserting object ' );
}
?>
バインドされたパラメーターは、SQLインジェクション攻撃を防ぐための主要な要素です。スローされた例外は、クエリに問題がある場合に何が問題になる可能性があるかについての手がかりを与えます。私は通常、最初にクエリをチェックして、実際の値で機能していることを確認します。そこからそれは排除のプロセスです。
PS。SQLインジェクションの詳細については、https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheetを参照してください。また、SQLインジェクションに関するStackoverflowに関するいくつかの優れた情報と質問を見つけることができるはずです。