mysql php用上传文件将记录插入数据库

时间:2014-01-10 03:26:41

标签: php mysql sql

我做错了什么,一切正常,除了它不会将文件名插入数据库。它确实传递了所有内容,但它没有执行我知道它与插入有关的文件。

这是我的插入代码

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "file_upload")) {
  $insertSQL = sprintf("INSERT INTO products_tbl (`first`, image , pro_name, pro_desc,      price) VALUES (%s, %s, %s, %s, %s)",
                   GetSQLValueString($_POST['first'], "text"),
                   GetSQLValueString($_POST['image'], "text"),
                   GetSQLValueString($_POST['pro_name'], "text"),
                   GetSQLValueString($_POST['pro_desc'], "text"),
                   GetSQLValueString($_POST['price'], "text"));

这是我的表单代码

<form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" id="file_upload">
      <table width="624">
        <tr valign="baseline">
          <td align="right">First:</td>
          <td><input type="text" name="first" value="" size="50" /></td>
        </tr>
        <tr valign="baseline">
          <td align="right"><label>Select File: </label></td>
          <td><div class='input file'>

                <input type='file' name='file[]' id='file[]'/>
                <a href='#' class='add_another_file_input hide'>
                    <img src='../img/add.png' alt='Add Icon' />
                </a>
            </div></td>
        </tr>
        <tr valign="baseline">
          <td align="right">Service Name:</td>
          <td><input name="pro_name" type="text" value="" size="50" /></td>
        </tr>
        <tr valign="baseline">
          <td align="right">Service Description:</td>
          <td><textarea name="pro_desc" cols="50" rows="10"></textarea></td>
        </tr>
        <tr valign="baseline">
          <td align="right">Price:</td>
          <td><input type="text" name="price" value="" size="32" /></td>
        </tr>
        <tr valign="baseline">
          <td align="right">&nbsp;</td>
          <td><div class='input buttons'>
                <input name='upload' type='submit' id='upload' value="Upload"></button>
            </div></td>
        </tr>
      </table>
      <input type="hidden" name="MM_insert" value="file_upload" />
      <?php //pr($upload); ?>

除了不将文件名插入数据库外,一切正常。

1 个答案:

答案 0 :(得分:0)

你的字符串周围缺少引号。

$insertSQL = sprintf("INSERT INTO products_tbl (`first`, image , pro_name, pro_desc,      price) 
VALUES (%s, %s, %s, %s, %s)",

应该是:

$insertSQL = sprintf("INSERT INTO products_tbl (`first`, image , pro_name, pro_desc,      price) 
VALUES ('%s', '%s', '%s', '%s', '%s')",