Helo。次のINSERT INTOクエリを実行するのに問題があります。 SELECTは正常に動作します。間違いはどこですか?あなたの表の列はクォートすべきではないデータベースに挿入する方法(構文エラー)
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id', 'reg_date', 'szoveg') VALUES (NULL, CURDATE(), 'x')' at line 1
$servername = "localhost";
$username = "root";
$password = "pass";
$dbname = "db";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT * FROM Notes");
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
if(isset($_POST["szoveg"])){
$query = "INSERT INTO Notes ('id', 'reg_date', 'szoveg') VALUES (NULL, CURDATE(), '".$_POST["szoveg"]."')";
$stmt = $conn->prepare($query);
$stmt->execute();
}
**警告**:PDOを使用する場合は、[prepared statements](http://php.net/manual/en/pdo.prepared-statements.php)にプレースホルダ値を使用し、ユーザーデータを別々の引数。このコードでは、潜在的に深刻な[SQLインジェクションのバグ](http://bobby-tables.com/)があります。文字列補間や連結を使用せず、代わりに[prepared statements](http://php.net/manual/en/pdo.prepared-statements.php)を使用し、 '$ _POST'や' $ _GET'データをクエリ。この問題やその他の問題については、[PHP The Right Way](http://www.phptherightway.com/)を参照してください。 – tadman