2014-03-25 82 views
-1

有人可以告诉我我做了什么错误的代码,我连接到本地到数据库称为视频。然后我插入表格位置并将其列位置的值$videoLocation将视频存储在数据库中,然后检索它

结果我得到的是,当我打开我的浏览器是

<?php 
    echo "Upload: " . $_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 />"; 
    ?> 

我想实现这个代码是针对视频在我的网页一旦用户提交它出现。

<?php   
    $allowedExts = array("jpg", "jpeg", "gif", "png", "mp3", "mp4", "wma"); 
    $allowType = array("video/mp4","audio/mp3","audio/wma","image/png","image/gif","image/jpeg"); 
    $maxSize = 20000000000000; 
    $extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); 
    $pathToUpload = 'upload/'; 

     if(in_array($_FILES["file"]["type"], $allowType) && in_array($extension, $allowedExts) && $_FILES["file"]["size"] <= $maxSize) 
     { 
     if ($_FILES["file"]["error"] > 0) 
     { 
     echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
     } 
      else 
      { 
      echo "Upload: " . $_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 />"; 

    if (file_exists($pathToUpload . $_FILES["file"]["name"])) 
    { 
     echo $_FILES["file"]["name"] . " already exists. "; 
    } 
    else 
    { 
     move_uploaded_file($_FILES["file"]["tmp_name"], $pathToUpload . $_FILES["file"] ["name"]); 
      $videoLocation = "upload/".$_FILES['file']['name']; 
     // now insert $videoLocation into a database table 
     $db = new mysqli('127.0.0.1', 'root', '', 'video'); 
     INSERT INTO location (location) 
     VALUES ($videoLocation) 
     //so you can fetch it on whatever page you feel like 
      } 
     } 
     } 
      else 
      { 
      echo "Invalid file"; 
      } 

    ?> 
+2

这是什么? INSERT INTO位置(位置) VALUES($ videoLocation) –

+0

location是表的名称,括号内的位置是表的列名之一。 – user3448253

+0

_“我得到的结果是当我打开我的浏览器是”_ - 是_what_?您可以看到您在此声明之后发布的PHP代码,未解析 - 或者是什么? – CBroe

回答

0

试试这个

$db = new mysqli('127.0.0.1', 'root', '', 'video'); 
$stmt = $db->prepare("INSERT INTO location (location) VALUES (?)"); 
$stmt->bind_param('s', $videoLocation); 
$stmt->execute(); 
//so you can fetch it on whatever page you feel like 
0

最近我回答别人谁想要的图像文件存储在数据库中的问题。下面是如何做到这一点:

1)数据库列必须定义为longblob。

接下来,代码使用PDO而不是mysqli。

// database connection... 
$dsn = 'mysql:host=localhost;dbname=testmysql'; 
$username = 'test'; 
$password = 'test'; 
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', 
); 
$connection = new PDO($dsn, $username, $password, $options); 
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

然后,你需要打开文件句柄如下:

$fileVideo = fopen($videoLocation,'rb'); 

然后您准备语句和文件绑定:

$stmt = $connection->prepare("INSERT INTO location (location) VALUES (?)"); 
$stmt->bindParam(1, $fileVideo, PDO::PARAM_LOB); 

$connection->beginTransaction(); 
$stmt->execute(); 
$connection->commit(); 
fclose($fileVideo); 

我没有测试以上的文件,但原来的代码就像上面,但名称更改工作正常。

相关问题