phpmyadminテーブルにデータを挿入したいのですが、同じコードが別のページで動作しましたが、このテーブルでは機能しませんでした。コードは次のとおりです。phpmyadminテーブルへのデータの挿入
<?php
$hostname = 'localhost';
$username = 'root';
$password = '';
try {
$conn = new PDO("mysql:host=$hostname;dbname=database", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch (PDOException $e) {
echo $e->getMessage();
}
if (isset($_POST['NomPrenom']) && isset($_POST['date']) && isset($_POST['email']) && isset($_POST['description'])) {
$NomPrenom = $_POST['NomPrenom'];
$date = $_POST['date'];
$email = $_POST['email'];
$description = $_POST['description'];
try {
$sql = "INSERT INTO demande (NomPrenom,date,email,description)
VALUES ('$NomPrenom','$date','$email','$description')";
$stmt = $conn->prepare($sql);
if ($stmt->execute(array(
$NomPrenom,
$date,
$email,
$description
))) {
echo "Data inserted";
} else {
echo "could not insert";
}
}
catch (Exception $ex) {
error_log($ex->getMessage());
}
}
?>
私はページを更新してもエラーはなく、テーブルに何も追加されません。 これは table named demande
'phpMyAdmin'は、テーブルを持っていない、そのアプリケーションのように、名前付きパラメータを使用して!しかし、「MySQL」にはテーブルがあります。 – RiggsFolly
あなたのスクリプトは[SQL Injection Attack]の危険にさらされています(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Even [入力をエスケープする場合、その安全ではありません!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) [準備パラメータ化されたステートメント](http:// php .net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly
あなたは準備文を正しく使用していません。あなたのクエリは無効です。 –