在Access数据库的附件字段中插入文件上传


Inserting a file upload into an attachment field in an Access database

我试图上传一个文件,然后将其移动到Access数据库。该文件名为"Attachment",并具有Attachment属性。它在Access中运行良好。
它上传到服务器上,但我不能让它插入到数据库中。

 <?php
 if ($_FILES["file"]["error"] > 0)
 {
 echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
 }
 else
 {
 echo "File name: " . $_FILES["file"]["name"] . "<br>";
 echo "Type: " . $_FILES["file"]["type"] . "<br>";
 echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
 echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
 move_uploaded_file($_FILES["file"]["tmp_name"], "C:/AccessBackEnds/LiveDesk/Uploads/" . $_FILES["file"]["name"]);
 echo "Stored in: LiveDesk/Uploads/";
 }
 $file = "C:/AccessBackEnds/LiveDesk/Uploads/" . $_FILES["file"]["name"];
 $db = realpath('C:'AccessBackEnds'LiveDesk'LiveDeskBackEnd.accdb');
 $conn = odbc_connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=$db",'','') or die ("Unable to connect to server");
 $input="INSERT INTO CallTracker (Attachment)
 VALUES
 (file($file))";
 $rs=odbc_exec($conn,$input);
 if (!$rs)
 {
 die('Error: ' . mysql_error());
 }
 ?> 

错误是警告:odbc_exec() [function。ODBC -exec]: SQL error: [Microsoft][ODBC Microsoft Access Driver]查询表达式"file(C:/AccessBackEnds/LiveDesk/Uploads/CdpPacket.inf)"语法错误(缺少操作符)。, SQL状态37000 SQLExecDirect在C:'xampp'htdocs'test'upload_file.php第26行

PHP使用一个临时文件名来存储上传的文件,它是而不是客户端机器上的文件名。

$file = "C:/AccessBackEnds/LiveDesk/Uploads/" . $_FILES["file"]["name"];
                                                               ^^^^^^^^

应该是['tmp_name']

一样……Access女士有file()功能吗?