我试图上传一个文件,然后将其移动到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()
功能吗?