0

我正在使用 PDO,但我对此处未定义变量的错误感到困惑:

它与数据库连接后的变量 cat_name 相关。

我直接将值添加到变量中。它已将错误更改为:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''categories'('cat_name', 'cat_description') VALUES ('ohnoe','ohnoes')' 附近使用正确的语法

  <?php
    try{
    include 'database.php';
    $db =  database:: getConnection();
        $catName = "ohnoe";
        $catDesc = "ohnoes";
    if(isset($_POST['submit'])){
    if(isset($_POST['cat_name'])){
        $catName = $_POST['cat_name'];
    }
    else{
        echo "already set";
    }

    if(isset($_POST['cat_description'])){
    echo"Oh dear";
    }
    else{
    $catDesc = $_POST['cat_description'];
    }}
    $sqlQuery = ("INSERT INTO 'categories'('cat_name', 'cat_description') VALUES (:cat_name,:cat_description)");

    $statement = $db->prepare($sqlQuery);
    $statement->bindValue(":cat_name",$catName);
    $statement->bindValue(":cat_description",$catDesc);

    $count = $statement->execute();

    $db = null;
    }catch(PDOException $e){
    echo $e->getMessage();
    }
    ?>
4

1 回答 1

0

您确定它是“未定义的变量”,而不是“未定义的索引”吗?如果您在渲染表单和处理数据的情况下都运行此脚本,那么您必须通过在任何数据处理之前放置if ($_POST)或更具体的方式来检查请求类型。if (isset($_POST['cat_name']) && isset($_POST['cat_description'])

于 2013-02-27T23:44:14.120 回答