我正在使用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();
}
?>
答案 0 :(得分:0)
你确定它是“未定义的变量”,而不是“未定义的索引”吗?如果您在渲染表单和流程数据的情况下运行此脚本,则必须在任何数据处理之前添加if ($_POST)
或更具体的if (isset($_POST['cat_name']) && isset($_POST['cat_description'])
来检查请求类型。