得到以下代码。所有值都是通过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);
create
是mysql中的保留字,因此您需要在backticks:中引用它
INSERT INTO `create` ...
要让PDO抛出异常,您需要在打开连接后添加:
$con = new PDO('mysql:host=localhost;dbname=test');
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
顺便说一句,我假设您也使用用户名和密码(PDO构造函数的第二个和第三个参数)登录数据库。。。