2017-01-16 115 views
0

我真的一直在为解决我的问题而拼命。 我看了整个互联网,但找不到任何理由,为什么我一直有这个问题。使用PHP将文件上传到mysql

我的文件确实发送到我的服务器上的“上传”文件,但细节不会发送到MySQL数据库。我究竟做错了什么?

的index.php

<?php 
include_once 'dbconfig.php'; 
?> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<link rel="stylesheet" href="style.css" type="text/css" /> 
</head> 
<body> 
<div id="body"> 
    <form action="upload.php" method="post" enctype="multipart/form-data"> 

    <div class='container'> 
    <label for='voornaam' >Naam*: </label><br/> 
    <input type='text' name='voornaam' /> 
    </div> 
    <input type="file" name="file" /> 
    <button type="submit" name="btn-upload">upload</button> 
    </form> 
    <br /><br /> 

</div> 
</body> 
</html> 

upload.php的

<?php 
include 'dbconfig.php'; 
if($_FILES["file"]["error"]>0) 
{ 
    echo "FILE ERROR"; 
    die(); 
} 
$filename = "uploads/".$_FILES["file"]["name"]; 
// move file to a folder 
if(move_uploaded_file($_FILES["file"]["tmp_name"], $filename)) 
{ 
    $sql="INSERT INTO tbl_uploads(name, file) VALUES('voornaam',$filename')"; 
    mysql_query($sql); 
    ?> 
    <script> 
    alert('successfully uploaded'); 
     window.location.href='index.php?success'; 
     </script> 
    <?php 
} 
else 
{ 
    ?> 
    <script> 
    alert('error while uploading file'); 
     window.location.href='index.php?fail'; 
     </script> 
    <?php 
} 
?> 
+1

你可以转储指出,MySQL的报告错误(假设有一个)? http://php.net/manual/en/function.mysql-error.php 编辑:另外值得注意的是,那些'mysql'司机已经走了渡渡鸟的路:http://www.php.net /manual/en/mysqlinfo.api.choosing.php –

+0

缺少sql文件中的单引号 - VALUES('voornaam',$ filename')'应该是'VALUES('voornaam','$ filename') ''但更好的使用准备好的语句并停止使用'mysql_ *'它被弃用,使用'mysqli'或'PDO' – RamRaider

+0

@ChrisSprague,没有错误 – WouterS

回答

0
  • 首先丢弃这些已废弃使用 准备的语句代替

这里的解决方案

上传.php

<?php 
include 'dbconfig.php'; 
if($_FILES["file"]["error"]>0) 
{ 
    echo "FILE ERROR"; 
    die(); 
} 
$filename = "uploads/".$_FILES["file"]["name"]; 
// move file to a folder 
if(move_uploaded_file($_FILES["file"]["tmp_name"], $filename)) 
{ 
    $sql="INSERT INTO tbl_uploads(name, file) VALUES('voornaam','$filename')"; 
    mysqli_query($db,$sql); 
    ?> 
    <script> 
     alert('successfully uploaded'); 
     window.location.href='index.php?success'; 
    </script> 
    <?php 
} 
else 
{ 
    ?> 
    <script> 
     alert('error while uploading file'); 
     window.location.href='index.php?fail'; 
    </script> 
    <?php 
} 
?> 

dbconfig.php

<?php 
//header('Content-Type: text/html; charset=ISO-8859-1'); 
define('DB_SERVER', 'localhost'); 
define('DB_USERNAME', 'root'); 
define('DB_PASSWORD', ''); 
define('DB_DATABASE', 'tbl_uploads'); 
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE); 
?> 
+0

非常感谢,我如何在我的数据库中获得输入形式的“voornaam”字段? – WouterS

+0

$ val = $ _ POST ['voornaam']; $ sql =“INSERT INTO tbl_uploads(name,file)VALUES('$ val','$ filename')”; –

0

首先,请阅读PDO/mysqli的。

关于你的问题,你必须使用Mysql_*功能删除'

enter image description here

+0

谢谢你的回复。我肯定会阅读关于PDO/MYSQLI,但我是一个新手,所以请理解。另外,如何将文本形式输入框“voornaam”到我的数据库? – WouterS