我在尝试将数组保存到相关的InnoDB时遇到错误“SQLSTATE [HY093]:参数号无效:参数未定义”,这对我来说没有意义,因为我已经使用了相同的方法多次在同一个应用程序和数据库连接似乎也可以工作,因为我可以读取和删除条目没有任何问题。
我已经检查了很多类似的问题,希望他们能解决我的问题,但没有找到解决我问题的问题。
这是我用来保存以创建数组并将其保存到DB中的方法:
public function saveBest(Besten $besten)
{
$GePunkte = (int) $besten->Punkte/$besten->Dauer;
$data = array(
'GePunkte' => $GePunkte,
'Name' => $besten->Name,
'Zeitpunkt' => $besten->Zeitpunkt,
'Punkte' => $besten->Punkte,
'Dauer' => $besten->Dauer,
'GewäKat' => $besten->GewäKat,
);
print_r($data);
$this->tableGateway->insert($data);
}
我已经使用“print_r($ data)”来检查数组中的数据是否完整,因为我怀疑这是导致错误的原因。
print_r显示以下内容:
Array ( [GePunkte] => 0.125 [Name] => Test [Zeitpunkt] => 1451480345 [Punkte] => 1 [Dauer] => 8 [GewäKat] => Natur )
同时我检查了每个参数的值是否与DB中设置的数据类型匹配。 GePunkte设置为float,Name为文本,Zeitpunkt为int,Punkte为int,Dauer为int,GewäKat为文本,因此所有值都在设置边界内。
我还检查了我是否通过检查Phpmyadmin中的insert sql命令获得了所有名称正确的参数,并且它是:
INSERT INTO `bestenliste`(`Sid`, `GePunkte`, `Name`, `Zeitpunkt`, `Punkte`, `Dauer`, `GewäKat`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7])
由于Sid是自动创建的,所以这似乎也没问题。
我无法弄清楚为什么它不能正常工作,因为应用程序中的其他任何东西都能完美地工作,并且因为这个应用程序的截止日期是明天午夜我有点急解决这个问题。
那么有人知道这个问题的解决方案吗?