Php 上传文件到mySQL数据库。代码帮助

Php 上传文件到mySQL数据库。代码帮助,php,mysql,blob,Php,Mysql,Blob,好吧,我在将一个文件作为blob插入数据库时遇到了一些问题。我可以将文件上载到数据库中的文件夹中,但现在我想将文件作为blob插入数据库。我知道这通常不适合做,但我想做。不管怎样,我想知道是否有人有PHP代码可以将文件插入blob表?我尝试过使用它,但没有任何效果,也许我只是没有编写SQL语句,对吗 <?php $target = "./"; $target = $target . basename( $_FILES['uploadedfile']['name']); $fil

好吧,我在将一个文件作为blob插入数据库时遇到了一些问题。我可以将文件上载到数据库中的文件夹中,但现在我想将文件作为blob插入数据库。我知道这通常不适合做,但我想做。不管怎样,我想知道是否有人有PHP代码可以将文件插入blob表?我尝试过使用它,但没有任何效果,也许我只是没有编写SQL语句,对吗

<?php 
 $target = "./"; 
 $target = $target . basename( $_FILES['uploadedfile']['name']); 
 $file=($_FILES['uploadedfile']['name']); 
 if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
 echo "The file ".  basename( $_FILES['uploadedfile']['name']).
 " has been uploaded";
 }else{
 echo "There was an error uploading the file, please try again!";
 }
 mysql_connect("localhost","root","");
 mysql_select_db("ivrsupport");
 $sql=mysql_query("insert into CUSTOMER (AUDIO_FILE)values
   ('$file') where PHONE_NUMBER = ('15555215554')");
 $r=mysql_query($sql);
 if(!$r){
 echo "Error in query: ".mysql_error();
 }  
mysql_close();  
?> 

您需要将文件读入变量,然后插入它。。只给它文件名是不行的

$fp      = fopen($basename, 'r');
$content = fread($fp, filesize($basename));
fclose($fp);

$sql=mysql_query("insert into CUSTOMER (AUDIO_FILE)values
   ('$content') where PHONE_NUMBER = ('15555215554')");

您需要将文件读入一个变量,然后插入它。。只给它文件名是不行的

$fp      = fopen($basename, 'r');
$content = fread($fp, filesize($basename));
fclose($fp);

$sql=mysql_query("insert into CUSTOMER (AUDIO_FILE)values
   ('$content') where PHONE_NUMBER = ('15555215554')");

$file只包含文件名,而不包含其内容

请尝试以下操作:

<?php 
 $target = "./"; 
 $target = $target . basename( $_FILES['uploadedfile']['name']); 
 $file=($_FILES['uploadedfile']['name']); 
 $fileContents = file_get_contents($file);
 if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
 echo "The file ".  basename( $_FILES['uploadedfile']['name']).
 " has been uploaded";
 }else{
 echo "There was an error uploading the file, please try again!";
 }
 mysql_connect("localhost","root","");
 mysql_select_db("ivrsupport");
 $sql=mysql_query("insert into CUSTOMER (AUDIO_FILE)values
   ('$fileContents') where PHONE_NUMBER = ('15555215554')");
 $r=mysql_query($sql);
 if(!$r){
 echo "Error in query: ".mysql_error();
 }  
mysql_close();  

$file只包含文件名,而不是其内容

请尝试以下操作:

<?php 
 $target = "./"; 
 $target = $target . basename( $_FILES['uploadedfile']['name']); 
 $file=($_FILES['uploadedfile']['name']); 
 $fileContents = file_get_contents($file);
 if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
 echo "The file ".  basename( $_FILES['uploadedfile']['name']).
 " has been uploaded";
 }else{
 echo "There was an error uploading the file, please try again!";
 }
 mysql_connect("localhost","root","");
 mysql_select_db("ivrsupport");
 $sql=mysql_query("insert into CUSTOMER (AUDIO_FILE)values
   ('$fileContents') where PHONE_NUMBER = ('15555215554')");
 $r=mysql_query($sql);
 if(!$r){
 echo "Error in query: ".mysql_error();
 }  
mysql_close();  

我会避免在数据库中存储文件。这就是文件系统的用途,而且在这方面做得更好。博客圈里有数百万的帖子在解释为什么不这么做。即使是一个小应用程序,我也不会这么做。只是觉得脏。数据库中的blob不包含关于文件本身的元数据,而作为FS,可以通过多种方式查询文件大小、修改时间、权限等信息。。。我的$0.02将避免在数据库中存储文件。这就是文件系统的用途,而且在这方面做得更好。博客圈里有数百万的帖子在解释为什么不这么做。即使是一个小应用程序,我也不会这么做。只是觉得脏。数据库中的blob不包含关于文件本身的元数据,而作为FS,可以通过多种方式查询文件大小、修改时间、权限等信息。。。我的$0.02

可能与我在您的问题中看到的重复,您实际上并没有读取文件数据,只是将其下载到服务器,并尝试在该数据库列中插入文件名。上面链接的文章向您展示了如何从磁盘读取文件并将其插入blob。右侧的“相关”链接将告知您对此的一些限制。从我在您的问题中看到的可能重复,您实际上并没有读取文件数据,只是将其下载到服务器,并尝试在该数据库列中插入文件名。上面链接的文章向您展示了如何从磁盘读取文件并将其插入blob。右边的“相关”链接会告诉你一些限制。我想这就是我现在的方向。谢谢我想这就是我现在的方向。谢谢