所以我一直在努力解决为什么在用户提交表单后我的“产品”没有上传到phpMyAdmin的情况下这个问题 - 该应用程序允许成员创建自己的产品...& ;我坚持的地方如下:我是一名登录用户,我在用户管理员的“列出产品”页面上。当我输入产品信息然后点击提交它不会发布产品&相关数据到phpmyadmin。我试图通过move_uploaded_file函数移动上传到文件夹的图像。任何帮助将不胜感激。所有代码应该在下面(数据库已连接,所有会话设置正确,我相信等):
来自create_product.php的表单(登录用户列出新产品的页面:
if (isset($_POST['product_name'], $_POST['product_description'])) {
$product_name = $_POST['product_name'];
$product_description = $_POST['product_description'];
$errors = array();
if (empty($product_name) || empty($product_description)) {
$errors[] = "All Fields are required";
} else {
if (strlen($product_name) > 55 || strlen($product_description) > 255) {
$errors[] = "One or more fields contains too many characters";
}
}
if (!empty($errors)) {
foreach ($errors as $error) {
echo $error, '<br/>';
}
} else {
create_product($product_name, $product_description);
header("location: product.php?product_id='.$product_id.'");
exit();
}
}
<form action="" method="post" enctype="multipart/form-data">
<p>Product Name:<br/><input type="text" name="product_name" maxlength="55" /></p>
<p>Describe this Product:<br/><textarea name="product_description" rows="6" cols="35" maxlength="255"></textarea></p>
<p>Upload a product profile pic:<br/><input type="file" name="fileField" id="fileField" /></p>
<p><input type="submit" value="Create"></p>
</form>
我的product.functions.php文件中的函数(包含在create_product.php文件中):
function create_product($product_name, $product_description) {
$product_name = mysql_real_escape_string(htmlentities($product_name));
$product_description = mysql_real_escape_string(htmlentities($product_description));
mysql_query("INSERT INTO `products` VALUES ('','".$_SESSION['member_id']."', UNIX_TIMESTAMP(), '$product_name', '$product_description')");
$bmid = mysql_insert_id();
// place image in the folder
$newname = "$bmid.jpg";
move_uploaded_file($_FILES['fileField']['tmp_name'],'uploads/$newname');
}
我相信我的问题可能来自图片上传,但我一直在努力解决这个问题...感谢您提供的任何帮助......
答案 0 :(得分:0)
这有一些问题。首先是insert语句。你不需要`,这是MySQL特有的而不是必需的。其次,您的ID字段可能是空值。将您的insert语句更改为(当然使用您的列名称):
INSERT INTO products (member,date_time,prod_name,prod_desc) VALUES ('".$_SESSION['member_id']."', UNIX_TIMESTAMP(), '$product_name', '$product_description')
这会导致您的文件无法上传且数据库无法更新。您可以尝试并且可能导致一些问题的另一件事是从字符串中删除php变量并将它们连接在一起。 newname变量应写为。
$location = "uploads/" . $bmid . ".jpg";
move_uploaded_file($_FILES['fileField']['tmp_name'],$location);
如果这不起作用,那么您将需要输出SQL以及它正在经历的任何错误。
$SQL = "INSERT INTO products (member,date_time,prod_name,prod_desc) VALUES ('".$_SESSION['member_id']."', UNIX_TIMESTAMP(), '".$product_name."', '".$product_description".')";
$result = mysql_query($SQL);
if(!$result) echo "SQL: ", $SQL, "<br />ERROR: ", mysql_error();
答案 1 :(得分:0)
问题出在您的INSERT
查询中,您忘记将列名称放在VALUES()
之前INSERT INTO table_name (columns_name) VALUES (values);