我正在尝试编写一个插入现有Access数据库的PHP脚本。如果我将从头开始,我会使用MySQL来完成这项工作,但由于现有的MS Access应用程序,我仍然坚持使用数据库。
截至目前,我正在尝试使用以下PHP代码。
$conn=odbc_connect('buju','','');
if (!$conn)
{
exit("Connection Failed: " . $conn);
}
$sql="SELECT *
FROM Teilnehmer
INNER JOIN TeilnWerte ON Teilnehmer.LfdNr = TeilnWerte.Teilnehmer
WHERE Teilnehmer.Klasse = '$_POST[klasse]'";
$rs=odbc_exec($conn,$sql);
echo "\nErrorCode:\n".odbc_error($conn);
echo "\nErrorMessage:\n".odbc_errormsg($conn);
我很确定,问题出在SQL查询中,因为只有我这样做才能正常工作
SELECT * FROM Teilnehmer WHERE Klasse = '$_POST[klasse]'
没有尝试加入第二个表。
我正在使用odbc和Microsoft Access Driver。我得到的错误代码是07001
。错误消息是
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
我也试过
SELECT *
FROM Teilnehmer, TeilnWerte
WHERE Teilnehmer.LfdNr = TeilnWerte.Teilnehmer
AND Teilnehmer.Klasse = '$_POST[klasse]'
也不起作用。
我做错了什么吗?是否有某些SQL命令不起作用
答案 0 :(得分:1)
由于echo $sql
给你......
SELECT *
FROM
Teilnehmer
INNER JOIN TeilnWerte
ON Teilnehmer.LfdNr = TeilnWerte.Teilnehmer
WHERE Teilnehmer.Klasse = '06A'
在Access中测试与新查询相同的语句。在查询设计器中创建一个查询,切换到SQL视图,粘贴到语句中,看看运行它时会发生什么。
“参数太少”的原因通常是拼写错误的项目(对象名称,函数或SQL关键字)。由于db引擎无法找到该项,因此它假定该项是参数。 Access将弹出一个参数对话框,要求您提供参数值,该对话框还包含参数的名称。所以它告诉你哪个是拼写错误的项目。