2014-11-01 26 views
1

我想上传一个图像使用PHP到MySQL。在查询中,我试图将图像和图像的目录保存在数据库中,但是我在数据库中获得了空目录,并且在文件夹中没有图像。任何帮助将不胜感激!上传一个图像使用PHP到MySQL

<?php 
// include db connect class 
define('__ROOT__', dirname(dirname(__FILE__))); 
require_once(__ROOT__.'/android_connect/db_connect.php'); 

$db = new DB_CONNECT(); 


//Setting up images directory 
$target = "./images"; 
$target = $target . basename($_FILES['photo']['name']); 

$photo=($_FILES['photo']['name']); 

//inserting data order 
$order = "INSERT INTO scb 
     (photo, directory) 
     VALUES 
     ( '$_POST[$target]', 
     '({$_FILES['photo']['name']})')"; 

if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
{ 

//Tells you if its all ok 
echo "The file ". basename($_FILES['photo']['name']). " has been uploaded, and your information has been added to the directory"; 
} 
else { 

//Gives an error if its not 
echo "Sorry, there was a problem uploading your file."; 
} 

//declare in the order variable 
$result = mysql_query($order); //order executes 
if($result){ 
echo "Thank you for submitting!"; 
} else{ 
echo "Sorry, something went wrong! Please try again!"; 
} 
?> 
+1

嘿,请确保你有,你要上传的文件夹适当的访问权限。您也可以通过打印出以下值来获取错误: $ _FILES [“photo photo”] [“error”] – Azarus 2014-11-01 21:27:54

+0

检查错误并检查表单(请提供表单html)。 – sinisake 2014-11-01 21:31:54

+2

我正在使用Android应用程序上传图像,我用另一个代码上传图像到文件夹,它的工作原理,但是当我想将图像保存到Mysql时,我得到这个错误“对不起,有一个问题上传你的文件。“这意味着图像没有上传!我会尝试打印出$ _FILES [“photo”] [“error”]的值,然后回复给你们 – sasuri 2014-11-01 21:35:58

回答

1

那么首先mysql_query是过时的使用PDO代替(你必须检查,如果该功能是通过使用phpinfo()您的服务器上启用);

试试这个

<?php 
      //Connect to sql db 
      try { 
        $user = "username"; 
        $pass = "password"; 
        $db = new PDO('mysql:host=yourhost;dbname=yourdb', $user, $pass); 

      } catch (PDOException $e) { 
        print "Error!: " . $e->getMessage() . "<br/>"; 
        die(); 
      } 



      //Setting up images directory 
      $target = "./images/"; //you forgot the last slash 
      $target = $target . basename($_FILES['photo']['name']); 

      $photo = $_FILES['photo']['name']; 

      //inserting data order 
      $stmt = $db->prepare("INSERT INTO scb (photo, directory) VALUES (:photo, :directory)"); 
      $stmt->bindParam(':photo', $_POST[$target]); 
      $stmt->bindParam(':directory', $_FILES['photo']['name']); 


      if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
      { 

        //Tells you if its all ok 
        echo "The file ". basename($_FILES['photo']['name']). " has been uploaded, and your information has been added to the directory"; 
      } 
      else { 

        //Gives an error if its not 
        echo "Sorry, there was a problem uploading your file."; 
      } 

      //declare in the order variable 
      if($stmt->execute()){ 
        echo "Thank you for submitting!"; 
      } else{ 
        echo "Sorry, something went wrong! Please try again!"; 
      } 
    ?> 
+2

得到此错误错误!:SQLSTATE [42000] [1044]访问拒绝用户'a5983957****'@'10.1.1.22'到数据库'a5983957 ***'任何想法如何处理? – sasuri 2014-11-01 23:14:26

+1

检查您的主机,数据库名称,用户名和密码 – Ahmad 2014-11-02 12:44:28

0

您是否检查过Web服务器日志文件中的错误或警告?你得到任何合理的输出,如果你写:

print_r($_FILES);