我正在尝试上传文件,然后将其移动到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
感谢任何帮助,谢谢。
答案 0 :(得分:0)
PHP使用临时文件名存储上传, NOT 是客户机上文件的名称。
$file = "C:/AccessBackEnds/LiveDesk/Uploads/" . $_FILES["file"]["name"];
^^^^^^^^
应改为['tmp_name']
。
同样...... Access女士有file()
功能吗?我找不到它的任何迹象。