无法从数据库中检索longblob音频文件

时间:2016-02-18 20:01:12

标签: php mysql

我正在将音频文件插入到我的数据库中,我正在将它们转换得很好,然后即使我在这里使用相同的代码获取了一些文件也无法检索到代码 getAudio.php

    <?php
include 'conn.php';
// to connect with the database
  $id = $_GET['id'];
  // validation just to be safe

  $sql = "SELECT file FROM letters1 WHERE id=$id"; 
  // choose the column from the table where the id= the id of the audio file

  $result = mysql_query("$sql");
  //query the audio file

  $row = mysql_fetch_assoc($result);
  //Returns an associative array

  mysql_close($link);
  //closes the non-persistent connection to the MySQL

  header("Content-type: audio/mpeg"); 
  //audio/wav for wav files mpeg for mp3 files, we used mp3 cuz 
  //wav didn't work on IE so just to be sure

 echo $row['file'];
 //calls the audio file and returns it in the src attribute
?>

returnblobfile.php

<?php include 'php/conn.php'
?>

<!DOCTYPE html>
<head><title>new</title></head>
<body>
<audio controls>
<source src="php/getAudio.php?id=14" type="audio/mpeg">
</audio>

</body>
</html>

我使用phpMyAdmin它停止在id 14,16,19,20,并且它们不是空的我继续编辑它们。 请帮助..提前感谢

1 个答案:

答案 0 :(得分:0)

除了SQL注入,你的代码似乎没问题。可能是你达到了一些内存或存储限制:

  • 猜猜1:您使用的是blob类型的字段,但是您的文件比那个文件大,并且在插入表格时会被截断。使用具有更大容量的字段类型可能是一种解决方案(mediumblob或longblob)。

  • 猜猜2:file字段的内容对于php内存限制来说太重了。您可以尝试使用以下内容进行更多操作:

使用和.htaccess文件:

    php_value memory_limit 128M

或者在脚本顶部使用ini_set:

    ini_set('memory_limit', '128M');

(32,64,128或任何适用于您的号码)

编辑:oops ...没有注意,标题已经说你正在使用longblob ^^