2014-03-25 125 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); 

我沒有測試以上的文件,但原來的代碼就像上面,但名稱更改工作正常。

相關問題