我有一个Web应用程序,我正在建立一个用户能够创建一个新项目。PHP PDO插入语句不通过
我已经处理了几天,我完全难住!
我有一个“新建项目”按钮,当你点击它时,它会调用一个newProject函数(并通过新项目所在的文件夹的id。但这并不重要。)
这就是那个javascript函数看起来像。
function newProject(parentFolder) {
//this is here because the data type stored in the database is varchar and if the value is 'none' then there the project being created will bi in no folder.
if(parentFolder != 'none') { //convert to nonstring
var PF = parentFolder;
}else {
var PF = 'none';
}
//create the new project
$.post('../../php/new_project.php', { parentFolder: PF, name: 'New Project' }, function(data) {
alert(data);
});
}
与new_project.php文件的连接很好,所有变量都通过。
这里是new_project.php文件
session_start();
if(isset($_SESSION['username'])){
$username = $_SESSION['username'];
if(isset($_SESSION['name'])){
$name = $_SESSION['name'];
}
}
if(isset($_POST['name'])) {
$parentFolder = $_POST['parentFolder'];
$name = $_POST['name'];
$date = date('Y/m/d');
$openId;
for ($i=0;$i<10;++$i)
$openId.= ($r=mt_rand(0,35))<26?chr(ord('a')+$r):chr(ord('0')+$r-26);
$conn = new PDO('mysql:host=localhost;dbname=projects', "******", "*******");
$sql = "INSERT INTO projects (id, ProjectName, creatorOfProject, public, lastEdited, openId, deleted, parentfolder, favorite) VALUES (:id, :ProjectName, :creatorOfProject, :public, :lastEdited, :openId, :deleted, :parentfolder, :favorite)";
$query = $conn -> prepare($sql);
$query -> execute(array(
":id" => '',
":ProjectName" => $name,
":creatorOfProject" => $username,
":puclic" => '',
":lastEdited" => $date,
":openId" => $openId,
":deleted" => '',
":parentfolder" => $parentFolder,
":favorite" => ''
));
}else {
echo 'something went wront';
}
因为我警报从这个文件,它只是弹出一个空白的警告框传递的数据。 也没有javascript错误。
':public'和'“:puclic”' - 错误异常没有设置,所以你没有收到通知。 'setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION)' - 不要使用这个'echo'事情发生了;' - 使用try/catch。 – 2014-10-18 23:31:02