2013-09-21 66 views
0

我是PHP新手,学习如何使用预准备语句并获取标题中列出的错误。我研究了以前的人们在这个错误方面的问题,但是问题和解决方案似乎很复杂,因为我使用他们的解决方案来解决我的问题。我想抓住用户输入消毒它,然后执行查询,并希望尽量减少SQL注入的机会。无效参数编号:绑定变量数量与令牌数量不匹配

有人可以看看我的代码。

sth=$conn->prepare("SELECT EnglishWord FROM Japanesedefinition WHERE Japaneseword =:Japaneseword"); 
$sth->execute(array(':Japaneseword',$name)); 
$result = $sth->fetch(PDO::FETCH_OBJ); 
$result ->EnglishWord; 

在我的绑定构造函数中我将$ name设置为$ _POST ['Japanseword']。我想我可能会提到这一点。

回答

2

我敢肯定的阵列应该是key=>value,不key,value

$sth->execute(array(":Japaneseword"=>$name)); 
+0

你是对的,它的工作。我不能给你信用,直到5分钟。为什么? –

+0

@Saori,我认为延迟是(稍微)阻止冲突的答案。这个特定的问题只需要一个简短的贡献,但总的来说,我们在这里喜欢细节':)'。 – halfer

相关问题