-4
我想插入数据到一个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注入攻击]的风险(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) 甚至 [如果您正在转义输入,它不安全!](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
您没有正确使用准备好的语句;你的查询是无效的。 –