PHP形成未定义的变量

时间:2013-02-27 23:37:06

标签: php forms

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

它涉及数据库连接之后的变量cat_name。

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

SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;查看与MySQL服务器版本对应的手册,以便在第1行''类别'('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();
    }
    ?>

1 个答案:

答案 0 :(得分:0)

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