准备好的声明不发送到数据库

时间:2015-06-01 01:22:54

标签: php html image prepared-statement

我正在尝试创建我的第一个准备好的声明。有了这个,我也试图将我的第一个图像文件发送到我的数据库。我一直在研究这个问题已经有一个月左右的时间了。我最初尝试用一个带有php的简单插入命令来执行此操作,除了img文件的名称外,所有内容都插入到我的数据库中。我被告知多次使用准备好的声明来创建它,所以我这样做,但没有任何东西发送到我的数据库,我无法找出原因。

我通过验证某些数据字段来启动代码。我还没有验证img文件,但稍后会。验证不是问题,因为我把它打破了一点,它正在通过它。

我没有发生任何错误。我甚至在执行语句时会添加会产生任何语法错误的内容,但这不会产生任何错误。

有没有人看到我在这里做错了会导致这种情况无法发送?是否与我的img文件有关,或者我是否正确地编写了预处理语句?

if($validation->passed()) {
        if(isset($_POST['create'])){ 
            $product_id = trim( $_POST['product_id'] );
            $name = trim( $_POST['name'] );
            $price = trim( $_POST['price'] );
            $saleprice = trim( $_POST['saleprice'] );
            $final_price = trim( $_POST['final_price'] );
            $shippingprice = trim( $_POST['shippingprice'] );
            $category = trim( $_POST['category'] );
            $item_details = trim( $_POST['item_details'] );
            $item_details2 = trim( $_POST['item_details2'] );
            $description = trim( $_POST['description'] );
            $viewproduct_type = trim( $_POST['viewproduct_type'] );
            $file = "productpics/". $_FILES['file']['name']; // save the filename

        }else {
            foreach($validation->errors() as $error) {
                echo $error, '<br>';
            }
            move_uploaded_file($_FILES['file']['tmp_name'], $file); // move the file

        //Connection
        $con = mysqli_connect("localhost","root","","bfb");
        /* check connection */
            if (mysqli_connect_errno()) {
                printf("Connect failed: %s\n", mysqli_connect_error());
                exit();
            }



        /* create a prepared statement */
        if ($stmt = mysqli_prepare($con, "INSERT INTO products (product_id, name, price, saleprice, final_price, shippingprice, category, item_details, item_details2, description, viewproduct_type, date, img) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), ?)")) {


            /* bind parameters for markers */
            $stmt->bind_param('isiiiissssss', $product_id, $name, $price, $saleprice, $final_price, $shippingprice, $category, $item_details, $item_details2, $description, $viewproduct_type, $file);

            /* execute query */
            $stmt->execute();

            //if(!$stmt->execute()){trigger_error("there was an error....".$con->error, E_USER_WARNING);}


        /* close statement */
        mysqli_stmt_close($stmt);
            }
        }
    }
 }
}   
?>

表格

<form action="" method="POST" enctype="multipart/form-data">
    <div class="field">
        <label for="product_id">Product ID</label>
        <input type="text" name="product_id" class="smallinputbar" required>
    </div>
    <div class="field">
        <label for="name">Product Name</label>
        <input type="text" class="inputbar" name="name" required>
    </div>
    <div class="field">
        <label for="price">Product Price</label>
        <input type="text" class="smallinputbar" name="price" required>
    </div>
    <div class="field">
        <label for="saleprice">Sale Price</label>
        <input type="text" class="smallinputbar" name="saleprice">
    </div>
    <div class="field">
        <label for="final_price">Final Price</label>
        <input type="text" class="smallinputbar" name="final_price" required>
    </div>
    <div class="field">
        <label for="shippingprice">Shipping Price</label>
        <input type="text" class="smallinputbar" name="shippingprice" required>
    </div>
    <div class="field">
        <label for="category">Category</label>
        <input type="text" class="inputbar" name="category" required>
    </div>
    <div class="field">
        <label for="item_details">Item Details</label>
        <input type="message" class="messageinput" name="item_details" required>
    </div>
    <div class="field">
        <label for="item_details2">Item Details 2</label>
        <input type="message" class="messageinput" name="item_details2">
    </div>
    <div class="field">
        <label for="description">Description</label>
        <input type="message" class="messageinput" name="description" required>
    </div>
    <div class="field">
        <label for="viewproduct_type">View Product Type</label>
        <select class="optionbar" name="viewproduct_type">
            <option value="Not Selected">Not Selected</option>
            <option value="a href='./viewProduct.php?view_product=$id">Standard</option>
            <option value="Option">Option</option>
        </select>
    </div>

            <input type="hidden" name="token" value="<?php echo Token::generate(); ?>">
            <label for="button">
            <input type="submit" id="button" name="create" value="Create New Product">
            </label>

            <span class="floatright">
                <input type="file" name="file" class="inputbarfile">
                <input type="submit" name="create" id="signinButton" value="Upload">
            </span>
</form>

更新显示验证的完整代码:

<?php
//Validation
if(Input::exists()) {
if(Token::check(Input::get('token'))) {

    $validate = new Validate();
    $validation = $validate->check($_POST, array(
        'product_id' => array(
            'required' => true,
            'min' => 1,
            'max' => 50,
            'unique' => 'products'
        ),
        'name' => array (
            'required' => true,
            'min' => 2,
            'max' => 50
        ),
        'price' => array (
            'required' => true,
            'min' => 1,
            'max' => 50
        ),
        'saleprice' => array (
            'min' => 1,
            'max' => 50
        ),
        'final_price' => array (
            'required' => true,
            'min' => 1,
            'max' => 50
        ),
        'shippingprice' => array (
            'max' => 50
        ),
        'category' => array (
            'required' => true,
            'min' => 2,
            'max' => 50
        ),
        'item_details' => array (
            'required' => true,
            'min' => 2,
            'max' => 1550
        ),
        'item_details2' => array (
            'max' => 1550
        ),
        'description' => array (
            'required' => true,
            'min' => 2,
            'max' => 1550
        )

    )
    );
 //Create

    if($validation->passed()) {
        if(isset($_POST['create'])){ 
            $product_id = trim( $_POST['product_id'] );
            $name = trim( $_POST['name'] );
            $price = trim( $_POST['price'] );
            $saleprice = trim( $_POST['saleprice'] );
            $final_price = trim( $_POST['final_price'] );
            $shippingprice = trim( $_POST['shippingprice'] );
            $category = trim( $_POST['category'] );
            $item_details = trim( $_POST['item_details'] );
            $item_details2 = trim( $_POST['item_details2'] );
            $description = trim( $_POST['description'] );
            $viewproduct_type = trim( $_POST['viewproduct_type'] );
            $file = "productpics/". $_FILES['file']['name']; // save the filename

        }else {
            foreach($validation->errors() as $error) {
                echo $error, '<br>';
            }
            move_uploaded_file($_FILES['file']['tmp_name'], $file); // move the file

        //Connection
        $con = mysqli_connect("localhost","root","","bfb");
        /* check connection */
            if (mysqli_connect_errno()) {
                printf("Connect failed: %s\n", mysqli_connect_error());
                exit();
            }



        /* create a prepared statement */
        $stmt = $con->prepare("INSERT INTO products (product_id, name, price, saleprice, final_price, shippingprice, category, item_details, item_details2, description, viewproduct_type, date, img) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), ?)") 


            /* bind parameters for markers */
            $stmt->bind_param('isiiiissssss', $product_id, $name, $price, $saleprice, $final_price, $shippingprice, $category, $item_details, $item_details2, $description, $viewproduct_type, $file);

            /* execute query */
            if(!$stmt->execute()){trigger_error("there was an error....".$con->error, E_USER_WARNING);}


        /* close statement */
        mysqli_stmt_close($stmt);

        }
    }
 }
 }   
 ?>

0 个答案:

没有答案