$UniqueID = rand(5400, 40000);
$InsertQuery = $c->prepare("INSERT INTO dbo.Users_Master (
UserUID, UserID, Pw, JoinDate, Admin, AdminLevel, UseQueue, Status, Leave, UserType, Point)
VALUES (:UserUID, :UserID, :Pw, :Date, :Admin, :AdminLevel, :UseQue, :Status, :Leave, :UserType, :Point)");
$Param = array ($UniqueID, $_POST['Username'], $_POST['Password'], '2013-21-10', 'False', '0', 'False', '0', '0', 'P', '0');
$InsertQuery->execute($Param);
您好。我上面的代码确实有我的数据库的正确列名/表名,但我的插入不起作用?谁能明白为什么?
我已经过了10次这样的查询,试图发现错误,但我不能尝试。我试图用传统方式绑定params:
$InsertQuery->bindParam(':UserUID', $UniqueID, PDO::PARAM_INT);
$InsertQuery->bindParam(':UserID', $_POST['Username'], PDO::PARAM_STR);
$InsertQuery->bindParam(':Pw', $_POST['Password'], PDO::PARAM_STR);
$InsertQuery->bindParam(':Date', '2013-21-10', PDO::PARAM_STR);
$InsertQuery->bindParam(':Admin', 'False', PDO::PARAM_STR);
$InsertQuery->bindParam(':AdminLevel', '0', PDO::PARAM_INT);
$InsertQuery->bindParam(':UseQue', '0', PDO::PARAM_INT);
$InsertQuery->bindParam(':Status', '0', PDO::PARAM_INT);
$InsertQuery->bindParam(':Leave', '0', PDO::PARAM_INT);
$InsertQuery->bindParam(':UserType', 'P', PDO::PARAM_STR);
$InsertQuery->bindParam(':Point', '0', PDO::PARAM_INT);
这也证明没有运气。
答案 0 :(得分:1)
“试图发现错误”是非常无效的发现错误的方法 程序员必须要求他们的程序这样做。
如果出现PDO问题,必须告诉PDO引发错误错误:
$c->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
必须在连接后立即设置,或者甚至更好 - 作为连接选项 它将重述你在数据库中发生的任何错误 - 所以,你会知道,出了什么问题。
您的代码也存在一些问题
所以
$sql = "INSERT INTO Users_Master VALUES (NULL,?,?,curdate(),'False',0,0,0,0,'P',0)";
$stmt = $c->prepare($sql);
$stmt->execute(array($_POST['Username'], $_POST['Password']));