使用 php 访问 MDB

Posted

技术标签:

【中文标题】使用 php 访问 MDB【英文标题】:MDB access using php 【发布时间】:2011-08-11 11:06:07 【问题描述】:

我在尝试从 php 写入 .mdb 数据库时遇到了一些麻烦。

数据库有一个名为 cmets 的表,它有 3 列“id”、“comment”和“by”。我的代码是这样的。

<?php

$count =0;
$db_path = "newsBlog.mdb";
$odbc_con = new COM("ADODB.Connection");
$constr = "DRIVER=Microsoft Access Driver (*.mdb); DBQ=" . $db_path . ";";
$odbc_con -> open($constr);

$sql = "INSERT INTO [comments] VALUES (".$_POST['newsId'].",'".$_POST['comment']."', '".$_POST['by']."')";
echo $sql;
$odbc_con -> execute (sql);

$rs = null;
$conn = null;

echo "done";
?>

它从上一页的表单中获取 3 个值,应该将它们插入数据库,除非我每次都收到此错误:

<b>Fatal error</b>:  Uncaught exception 'com_exception' with message '&lt;b&gt;Source:&lt;/b&gt; Microsoft OLE DB Provider for ODBC Drivers&lt;br/&gt;&lt;b&gt;Description:&lt;/b&gt; [Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.' in D:\Hosting\7010757\html\users\kinectfashion\postComment.php:20 Stack trace:
#0 D:\Hosting\7010757\html\users\kinectfashion\postComment.php(20): com-&gt;execute('sql')
#1 main   thrown in <b>D:\Hosting\7010757\html\users\kinectfashion\postComment.php</b> on line <b>20</b><br />

对我来说,这让我很疯狂,因为我正在使用插入语句并且看不到我做错了什么!

任何帮助将不胜感激!

谢谢

【问题讨论】:

【参考方案1】:

$odbc_con -&gt; execute (sql); 应该是$odbc_con -&gt; execute ($sql);

【讨论】:

哦,天哪,天哪,天哪。非常感谢,我现在要为这样一个基本的、愚蠢的错误感到羞耻!非常感谢你,我怀疑我是否会发现那个 tbh! 如果您启用E_NOTICE 级别的错误报告,您将收到有关此类错误的警告。 PHP会抱怨Use of undefined constant sql - assumed 'sql' a basic, dumb error ... 那将在 2011 年使用 JET 驱动程序。 @todda.speot.is : 你知道其他选择吗? @Mchl 我支持这个!有什么更好、更现代的方式来做到这一点@todda.speot.is?我的大部分知识都是从旧教程/我可以在网上找到的任何东西拼凑而成的,我同意其中大部分可能已经过时了。任何指针都将受到欢迎!谢谢

以上是关于使用 php 访问 MDB的主要内容,如果未能解决你的问题,请参考以下文章

为许多用户通过 PHP 访问打开的 MDB 文件

使用 php 在两个日期之间选择 ms 访问

简单访问 PHP

PHP, odbc mdb 插入最大 id +1

使用 pdo-odbc 连接 php 和 .mdb 的 PHP 问题

如何使用 PHP 将 mysql 数据库导出/转换为 mdb 格式 [关闭]