我做错了什么,一切正常,除了它不会将文件名插入数据库。它确实传递了所有内容,但它没有执行我知道它与插入有关的文件。
这是我的插入代码
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"> </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); ?>
除了不将文件名插入数据库外,一切正常。
答案 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')",