将文件上载插入Access数据库中的附件字段

时间:2013-04-25 16:44:27

标签: php ms-access

我正在尝试上传文件,然后将其移动到Access数据库中。该文件名为“附件”并具有附件属性。它在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错误:[Microsoft] [ODBC Microsoft Access驱动程序]查询表达式'文件中的语法错误(缺少运算符)(C:/AccessBackEnds/LiveDesk/Uploads/CdpPacket.inf) '。,第26行的C:\ xampp \ htdocs \ test \ upload_file.php中的SQLExecDirect中的SQL状态37000

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

PHP使用临时文件名存储上传, NOT 是客户机上文件的名称。

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

应改为['tmp_name']

同样...... Access女士有file()功能吗?我找不到它的任何迹象。