【问题标题】:Inserting Data into phpmyadmin table将数据插入 phpmyadmin 表
【发布时间】:2017-09-22 17:38:22
【问题描述】:

我想将数据插入到 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

【问题讨论】:

标签: php mysql pdo


【解决方案1】:

您的查询构造错误,您需要在要准备的查询中放置位置参数,然后在执行时传递这些参数的值。

$sql = "INSERT INTO demande (NomPrenom,date,email,description) 
                  VALUES (?,?,?,?)";
$stmt = $conn->prepare($sql);
if ($stmt->execute(array($NomPrenom,$date,$email,$description))) {
    echo "Data inserted";
} else {
    echo "could not insert";
}

或者像这样使用命名参数

$sql = "INSERT INTO demande (NomPrenom,date,email,description) 
                  VALUES (:nom, :dat, :em, :desc)";
$stmt = $conn->prepare($sql);
$params = array(':nom'=>$NomPrenom,
                ':dat'=>$date,
                ':em'=>$email,
                ':desc'=>$description);

if ( $stmt->execute($params) ) {
    echo "Data inserted";
} else {
    echo "could not insert";
}

【讨论】:

  • 成功了!感谢您的快速回复和解决方案。我会确保更多地研究查询语句。
猜你喜欢
  • 2016-03-29
  • 2013-01-10
  • 2019-10-04
  • 2015-06-05
  • 2012-08-05
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 2012-11-26
相关资源
最近更新 更多