グローバル変数を使用し、bindValue()を使用してプレースホルダーに割り当て、値をデータベースに挿入できるようにします。私が使用している関数は以下のとおりです
public function insertComment() {
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = 'INSERT INTO comments ( name, email, commentText, articleID ) VALUES ( :name, :email, :commentText, :articleID )';
$st = $conn->prepare ( $sql );
$st->bindValue( ":name", $this->name, PDO::PARAM_STR );
$st->bindValue( ":email", $this->email, PDO::PARAM_STR );
$st->bindValue( ":commentText", $this->commentText, PDO::PARAM_STR );
$st->bindValue( ":articleID", $this->articleID, PDO::PARAM_INT );
$st->execute();
$conn = null;
}
パブリック変数を作成できない理由は、データがフォームからフォームに投稿されており、パブリックまたはパブリックスタティックの使用が無効な構文であるためです。私が使用している変数は
$name = isset($_POST['name']) ? $_POST['name'] : '';
$email = isset($_POST['email']) ? $_POST['email'] : '';
$commentText = isset($_POST['comment']) ? $_POST['comment'] : '';
$id = isset($_POST['id']) ? $_POST['id'] : '';
私がやりたいことは可能ですか、それともデータベースに挿入できるように値を割り当てる別の方法を見つけたほうがいいですか?