使用php访问MDB

时间:2011-08-11 11:06:08

标签: php database ms-access odbc jet

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

数据库有一个名为comments的表,它有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 />

对我来说,当我使用插入语句时,这接缝MAD并且无法看到我做错了什么!

非常感谢任何帮助!

由于

1 个答案:

答案 0 :(得分:2)

$odbc_con -> execute (sql);应为$odbc_con -> execute ($sql);