我使用Ubuntu+php+unixodbc+mdbtools处理.mdb文件。
每件事(connection+select)都很好,但是插入或更新语句。
我的代码是这样的:
$mdbConnection = new \PDO("odbc:mdbdriver",$user , $password , array('dbname' =>$FileName) );
$SelectResult = $mdbConnection->query("Select * from Zone");
$UpdateResult = $mdbConnection->query("Update Zone Set ShahrCode = 99"); $SelectResult返回正确的结果,但第二个结果抛出了一个错误,导致apache出现分段错误。
我使用isql command.Running选择语句进行测试,但没有成功。
#isql mdbdriver
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>Update Zone Set ShahrCode = 99
Error at Line : syntax error near Update
syntax error near Update
Got no result for 'Update Zone Set ShahrCode = 99' command
[08001][unixODBC]Couldn't parse SQL
[ISQL]ERROR: Could not SQLExecute或
SQL> Update [Zone] Set ShahrCode = 99
Error at Line : syntax error near Update
syntax error near Update
Got no result for 'Update [Zone] Set ShahrCode = 99' command
[ISQL]ERROR: Could not SQLExecute我应该如何纠正这个错误?谢谢大家
发布于 2014-06-25 20:49:57
最后,我找到了一个解决办法:
mdbtools还不能写入mdb文件。
MDB工具目前对Access 97 (Jet 3)和Access 2000/2002 (Jet 4)格式有只读支持。目前正在编写支持,预期第一个剪切将包含在0.6版本中。
使用简单编译的java应用程序是我们的解决方案。
exec('cd path/to/javaproject;java -cp . YourJavaProject "mdbfilepath" "insert|update|or select"',$output);发布于 2014-06-21 14:25:33
就我个人而言,我不会花很多时间试图让PHP + mdb_tools + unixODBC可靠地协同工作。尽管我尽了最大的努力,我还是试了好几次,结果都很失败。
我的建议是:
ADODB.Connection和相关对象)。https://stackoverflow.com/questions/24342165
复制相似问题