使用PHP将图像上传到MySQL

时间:2014-11-01 21:22:19

标签: php mysql

我尝试使用PHP将图像上传到MySQL。在查询中我试图在DB中保存图像和图像目录,但是我在DB中得到空目录,而且文件夹中没有图像。任何帮助将不胜感激!

<?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!";
}
?>

2 个答案:

答案 0 :(得分: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!";
            }
    ?>

答案 1 :(得分:0)

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

print_r($_FILES);