0

遵循我在网上找到的教程,这个教程基本上是向我展示如何将数据插入数据库。我有名为 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();
?>
4

2 回答 2

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>';
于 2013-09-12T22:51:28.657 回答
1

您需要在数组中的令牌名称前加上一个冒号,如下所示:

$result = $query->execute(array(
 ':Japaneseword'=>$Japaneseword,
 ":Englishword"=>$Englishword
));
于 2013-09-12T22:51:43.350 回答