使用 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 '<b>Source:</b> Microsoft OLE DB Provider for ODBC Drivers<br/><b>Description:</b> [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->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 -> execute (sql);
应该是$odbc_con -> 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的主要内容,如果未能解决你的问题,请参考以下文章