我正在努力使用PDO进行INSERT查询。
完全相同的代码使用msql_query函数,但我在尝试转换为PDO时遇到了困难。
有人可以建议为什么这段代码不会在表格中插入任何东西吗?
$weaponinvite = $_POST['weaponbtn'];
if ($weaponinvite){
$weaponinviteperson = $_POST['weaponinvitename'];
if(!$weaponinviteperson){
echo "You must enter a playername";
}else{
$invitequery = "SELECT count(*) FROM `users` WHERE username=:ocinvited";
$checkinvite = $db->prepare($invitequery);
$checkinvite->execute(array(':ocinvited'=>$weaponinviteperson));
$checkrows = $checkinvite->fetchColumn();
if ($checkrows == 0){
echo "No such user. Please check and try again";
}else{
$ocpositioninv = "Weapon Master";
$message = "Congratulations, You have been invited to join an organised crime in $oclocation as a $ocpositioninv . Click here to accept";
$ocinvitestatement ="INSERT INTO `inbox`(`id`,`to`,`from`,`message`,`date`,`read`,`saved`,`event_id`,`subject`) VALUES ('', ':ocinvited', ':ocinviter', ':message', ':date', '0', '0', '0', 'Organised Crime Invitation - :ocpositioninvsub')";
$wpinvstate = $db->prepare($ocinvitestatement);
$wpinvstate->execute(array(':ocinvited'=>$weaponinviteperson,
':ocinviter'=>$username,
':message'=>$message,
':date'=>$date,
':ocpositioninvsub'=>$ocpositioninv));
echo" invitation sent";
}
}
}
一切正常,在正确的阶段给出所有正确的回声,即使在最后的ELSE,回声:邀请已发送,但它不会将数据插入表中:(
我看过这里/互联网上的一些帖子,看来我的代码就是它的意思?
有人可以帮忙吗?
答案 0 :(得分:0)
替换此代码:
$ocinvitestatement ="INSERT INTO `inbox`(`id`,`to`,`from`,`message`,`date`,`read`,`saved`,`event_id`,`subject`) VALUES (NULL, :ocinvited, :ocinviter, :message, :date, '0', '0', '0',:ocpositioninvsub)";
和
$wpinvstate->execute(array(':ocinvited'=>$weaponinviteperson,
':ocinviter'=>$username,
':message'=>$message,
':date'=>$date,
':ocpositioninvsub'=>'Organised Crime Invitation '.$ocpositioninv));
答案 1 :(得分:0)
看,你有两个问题。
在第一个查询中,您正在使用占位符。
但是在第二个 - 突然之间 - 你做错了。它怎么样?