获得以下代码。所有值都是通过javascript获得的,然后通过ajax发送。最后的var_dump($ array)工作并显示所有正确的值。所以他们都正确地通过了。 try方法的catch错误也永远不会弹出。这些值未插入sql表中。怎么了? 提前致谢。
$name = $_GET['name'];
$category = $_GET['category'];
$subCategory = $_GET['subCategory'];
$date = $_GET['date'];
$address = $_GET['address'];
$city = $_GET['city'];
$state = $_GET['state'];
$host = $_GET['host'];
$imagePath = $_GET['imagePath'];
$info = $_GET['info'];
//turn into array
$array = array();
$array[0]=$name;
$array[1]=$category;
$array[2]=$subCategory;
$array[3]=$date;
$array[4]=$address;
$array[5]=$city;
$array[6]=$state;
$array[7]=$host;
$array[8]='j';//$imagePath;
$array[9]=$info;
try {
$con = new PDO('mysql:host=localhost;dbname=test');
$insert = $con->prepare(" INSERT INTO create
(name,category,subCategory,date,address,city,state,host,imagePath,info)
VALUES (?,?,?,?,?,?,?,?,?,?) ");
$insert->execute($array);
}
catch(PDOException $e) { //try
echo 'error';
//echo 'ERROR: ' . $e->getMessage();
}
var_dump($array);
答案 0 :(得分:3)
create
是mysql中的保留字,所以你需要在反引号中引用它:
INSERT INTO `create` ...
要让PDO抛出异常,您需要在打开连接后添加:
$con = new PDO('mysql:host=localhost;dbname=test');
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
顺便说一句,我假设您使用用户名和密码登录数据库(PDO constructor的第二和第三个参数)......