【问题标题】:Files getting uploaded but values doesn't get reflected in database文件上传但值未反映在数据库中
【发布时间】:2017-05-17 07:29:03
【问题描述】:
<!doctype html>
<?php
mysql_connect("127.0.0.1","root@localhost","");
mysql_select_db("reco");

if(isset($_POST['submit'])) {
    $soundcard_title = $_FILES['file']['name'];
    $upload_tmp = $_FILES['file']['tmp_name'];
    $upload_type = $_FILES['file']['type'];

    $upload_name = preg_replace("#^a-z0-9.#i","", $soundcard_title);

    if(!$soundcard_title) {
        echo "No file selected";
    } else{
        move_uploaded_file( $upload_tmp, "soundcards/".$soundcard_title);
        echo "<br />".$soundcard_title." has been uploaded";
    }

    $path= "http://127.0.0.1/upload-playback/soundcards/$soundcard_title";
    $query = "INSERT INTO 'soundcards' VALUE('','','$soundcard_title','$path','','','')";
    $query1 = mysql_query($query);
}
?>
<html>
    <head>
        <meta charset="utf-8">
        <title>Upload screen</title>
    </head>
    <body>
        <form enctype="multipart/form-data" action="upload_screen.php" method="post">
            Browse:<br>
            <input name="file" type="file" size="80"> <br>
            <input type="submit" name="submit" id="upload_btn" value="Upload">
        </form>
    </body>
</html>

我想使用mysql数据库在php中创建一个简单的上传播放。为此,我使用 xampp 创建 apache 服务器。 现在我可以将文件上传到指定的文件夹,但 mysql 数据库没有更新与上传文件关联的条目。因此,我以后无法播放文件。

我的数据库架构:

-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Jan 03, 2017 at 08:49 AM
-- Server version: 10.1.13-MariaDB
-- PHP Version: 5.6.23

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `reco`
--

-- --------------------------------------------------------

--
-- Table structure for table `soundcards`
--

CREATE TABLE `soundcards` (
  `s_id` int(10) NOT NULL,
  `u_id` int(11) NOT NULL,
  `soundcard_title` varchar(20) NOT NULL,
  `path` varchar(100) NOT NULL,
  `date-time` varchar(20) NOT NULL,
  `no_plays` int(11) NOT NULL,
  `no_reco` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Table structure for table `user`
--

CREATE TABLE `user` (
  `u_id` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  `username` varchar(20) NOT NULL,
  `email` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `soundcards`
--
ALTER TABLE `soundcards`
  ADD PRIMARY KEY (`s_id`);

--
-- Indexes for table `user`
--
ALTER TABLE `user`
  ADD PRIMARY KEY (`u_id`),
  ADD UNIQUE KEY `username` (`username`),
  ADD UNIQUE KEY `email` (`email`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `soundcards`
--
ALTER TABLE `soundcards`
  MODIFY `s_id` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
--
-- AUTO_INCREMENT for table `user`
--
ALTER TABLE `user`
  MODIFY `u_id` int(11) NOT NULL AUTO_INCREMENT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

【问题讨论】:

    标签: php mysql phpmyadmin xampp


    【解决方案1】:
    <!doctype html>
    <?php
        mysql_connect("127.0.0.1","root@localhost","");
        mysql_select_db("reco");
    
        if(isset($_POST['submit'])){
            $soundcard_title = $_FILES['file']['name'];
            $upload_tmp = $_FILES['file']['tmp_name'];
            $upload_type = $_FILES['file']['type'];
    
            $upload_name = preg_replace("#^a-z0-9.#i","", $soundcard_title);
    
            if(!$soundcard_title){
                echo "No file selected";
            }
            else{
                move_uploaded_file( $upload_tmp, "soundcards/".$soundcard_title);
                    echo "<br />".$soundcard_title." has been uploaded";
            }
    
            $path= "http://127.0.0.1/upload-playback/soundcards/$soundcard_title";
            $query = "INSERT INTO 'soundcards'  VALUES('','$soundcard_title','$path','','','')";
            $query1 = mysql_query($query);
        }
    ?>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Upload screen</title>
    </head>
    
    <body>
    <form enctype="multipart/form-data" action="upload_screen.php" method="post">
        Browse:<br>
        <input name="file" type="file" size="80"> <br>
        <input type="submit" name="submit" id="upload_btn" value="Upload">
    </form>
    
    </body>
    </html>
    

    【讨论】:

      【解决方案2】:

      我认为你的 sql 格式错误,插入的格式应该是这样的

      INSERT INTO TABLE_NAME (column1,column2,column3,...columnN)
      VALUES (value1,value2,value3,...valueN);
      

      【讨论】:

        【解决方案3】:

        插入查询中出现错误:

        $path= "http://127.0.0.1/upload-playback/soundcards/$soundcard_title";
        $query = "INSERT INTO 'soundcards' VALUE('','','$soundcard_title','$path','','','')";
        $query1 = mysql_query($query);
        

        解决方案:

        $query = "INSERT INTO 'soundcards' **VALUES**('','','$soundcard_title','$path','','','')";
        $query1 = mysql_query($query) or die('Error is='.mysql_error());
        

        您使用的是 VALUE 而不是 VALUES。

        【讨论】:

          猜你喜欢
          • 2015-03-16
          • 2012-05-17
          • 2023-01-04
          • 2019-11-11
          • 1970-01-01
          • 2021-07-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多