'SQLSTATE [HY093], я неправильно поставил запятую?

0

Я получил свой код в основном по работе. Кажется, я постоянно повторяю ту же ошибку снова и снова. Я думаю, это потому, что я поставил запятую где-то неправильно, но я понятия не имею. Может ли кто-нибудь помочь мне с этим кодом?

<?php
    $db_server = "localhost";
    $db_username = "root";
    $db_password = "";
    $db_database = "meubelfabriek";
    $conn = new PDO("mysql:host=$db_server;dbname=$db_database", $db_username, $db_password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    if(isset($_POST['submit']))
    {
        $prijs = $_POST['prijs'];
        $naam = $_POST['fname'];
        $beschrijving = $_POST['desc'];
        $maat1 = $_POST['maat1'];
        $maat2 = $_POST['maat2'];
        $maat3 = $_POST['maat3'];
        $maat4 = $_POST['maat4'];
        $imageName = $_FILES["image"]["name"];
        $imageData = file_get_contents($_FILES["image"]["tmp_name"]);
        $imageType = $_FILES["image"]["type"];
        if(substr($imageType,0,5)=="image")
        {
            $stmt = $conn->prepare("INSERT INTO producten ( naam, beschrijving, prijs, maat1, maat2, maat3, maat4, namen, image ) VALUES (  :naam, :beschrijving, :prijs,  :maat1, :maat2, :maat3, maat4,'$imageName', " . $conn->quote($imageData) . ")");
            $stmt->execute(array(":naam"=>$naam, ":beschrijving"=>$beschrijving, ":prijs"=>$prijs, ":maat1"=>$maat1, ":maat2"=>$maat2, ":maat3"=>$maat3, ":maat4"=>$maat4));;
        }
        else
        {
            echo "Oops, something went wrong!";    
        }
    }
?>
Теги:

3 ответа

1
Лучший ответ

Вы пропустили ::

:maat2, :maat3, maat4,'$imageName',  // There is a missing : before maat4
0

У вас есть дополнительная точка с запятой в этой строке:

$stmt->execute(array(":naam"=>$naam, ":beschrijving"=>$beschrijving, ":prijs"=>
$prijs, ":maat1"=>$maat1, ":maat2"=>$maat2, ":maat3"=>$maat3, ":maat4"=>$maat4));; <--
0

Проблема заключается в утверждении If

 $stmt = $conn->prepare("INSERT INTO producten ( naam, beschrijving, prijs, maat1, maat2, maat3, maat4, namen, image ) VALUES (  :naam, :beschrijving, :prijs,  :maat1, :maat2, :maat3, maat4,'$imageName', " . $conn->quote($imageData) . ")");
        $stmt->execute(array(":naam"=>$naam, ":beschrijving"=>$beschrijving, ":prijs"=>$prijs, ":maat1"=>$maat1, ":maat2"=>$maat2, ":maat3"=>$maat3, ":maat4"=>$maat4));;

Вы добавляете Double Quotes. Удалите его.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню