簡體   English   中英

PHP不會插入PHPmyAdmin中的數據庫

[英]PHP won't insert into the database in PHPmyAdmin

因此,我已經為此努力了好幾天,試圖弄清楚為什么用戶提交表單后我的“產品”沒有上傳到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');
}

我相信我的問題可能來自圖片上傳,但我一直為此苦苦掙扎...感謝您提供的任何幫助...

這有一些問題。 首先是插入語句。 您不需要`,即特定於MySQL且不是必需的。 其次,您的ID字段為空值。 將您的插入語句更改為(當然使用您的列名):

 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();

問題出在您的INSERT查詢中,您忘記將列名放在VALUES()之前,它應該是INSERT INTO table_name (columns_name) VALUES (values);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM