使用PHP将数据插入数据库(错误但不插入任何内容);

时间:2013-09-12 22:48:09

标签: php mysql

我在网上找到了以下教程,这篇教程基本上向我展示了如何将数据插入数据库。我有名为JapaneseDefinition的数据库,我有名为Japanesewords的表。我得到了将日语和英语发送到我的数据库的HTML代码。

我能够使用不同的查询查找单词,但我对INSERT查询没有这样的看法。有人可以查看我的代码并告诉我它在哪里出错。

                    try{
$conn = new PDO('mysql:host=Jamal-PC;dbname=japanesewords',$username,$password);
if(isset($_POST['EnglishWord'])){
$Japaneseword = $_POST ['JapaneseWord'];
$Englishword = $_POST['EnglishWord'];
$q = "INSERT INTO Japanesedefinition(Japaneseword,Englishword)VALUES(:Japaneseword,:Englishword):";
$query = $conn->prepare($q);
$result = $query->execute(array(
'Japaneseword'=>$Japaneseword,
"Englishword"=>$Englishword
));
}
}catch(PDOException $e){
 echo 'ERROR: ' . $e->getMessage();
}
echo 'hello';
}
myTest();
?>

2 个答案:

答案 0 :(得分:1)

您需要将冒号添加到执行数组键中。

$result = $query->execute(array(
':Japaneseword'=>$Japaneseword,
":Englishword"=>$Englishword
));

编辑:如果这不能解决问题并且您从查询字符串的末尾删除了冒号(您有):";),那么下一步就是检查您的帖子数据

//put this at the top of the script and make sure all your post 
//variables are set as expected
echo '<pre>';
print_r($_POST);
echo '</pre>';

答案 1 :(得分:1)

您需要在数组中的标记名称前面加冒号,如下所示:

$result = $query->execute(array(
 ':Japaneseword'=>$Japaneseword,
 ":Englishword"=>$Englishword
));