За последние 24 часа нас посетили 18417 программистов и 1612 роботов. Сейчас ищут 1792 программиста ...

Не могу понять ошибку. Ткните носом

Тема в разделе "Сделайте за меня", создана пользователем dnemin, 20 фев 2016.

  1. dnemin

    dnemin Новичок

    С нами с:
    20 фев 2016
    Сообщения:
    3
    Симпатии:
    0
    Недавно начал учить PHP. Скачал курс Специалист. Делаю все как по урокам и тут застопорился. Не вижу в чем ошибка где проблема! Просидел пару часов и так и не понял. Подскажите.

    По теме. Не получается сделать запись в БД.
    Код (PHP):
    1. <?php
    2. $title = $_POST[title];
    3. $author = $_POST[author];
    4. $pubyear = $_POST[pubyear];
    5. $price = $_POST[price];
    6.  
    7. function addItemToCatalog ($title, $author, $pubyear, $price){
    8.     define ("DB_HOST","localhost");
    9.     define ("DB_LOGIN","root");
    10.     define ("DB_PASSWORD","");
    11.     define ("DB_NAME","eshop");
    12.     define ("DB_","orders.log");
    13.  
    14.     $link = mysqli_connect(DB_HOST,DB_LOGIN,DB_PASSWORD,DB_NAME);
    15.  
    16.     $sql = mysqli_query("INSERT INTO catalog (title, author, pubyear, price) VALUE ($title$author$pubyear$price)");
    17.    if (!$stmt = mysqli_prepare($link, $sql))
    18.         return false;
    19.     mysqli_stmt_bind_param($stmt, "ssii", $title, $author,$pubyear, $price);
    20.     mysqli_stmt_execute($stmt);
    21.     mysqli_stmt_close($stmt);
    22.     return true;
    23. }
    24. if(!addItemToCatalog($title, $author, $pubyear, $price)){
    25.     echo 'Произошла ошибка при добавлении товара в каталог';
    26. }else{
    27.     header("Location: add2cat.php");
    28.     exit;
    29. }
    30.  
    31.  
    32.  
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ты выполняешь запрос в котором строчные значения не выделены как строчные. добавь вокруг них апострофы.
     
  3. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Код (PHP):
    1. "INSERT INTO catalog (`title`, `author`, `pubyear`, `price`) VALUE ('$title', '$author', '$pubyear', '$price')" 
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  5. dnemin

    dnemin Новичок

    С нами с:
    20 фев 2016
    Сообщения:
    3
    Симпатии:
    0
    Спасибо что указали на ошибки и помогли.
    В конечном итоге все получилось!
    Код (PHP):
    1. <?php
    2.     // подключение библиотек
    3.     require "secure/session.inc.php";
    4.     require "../inc/lib.inc.php";
    5.     require "../inc/config.inc.php";
    6.  
    7. $title = $_POST['title'];
    8. $author = $_POST['author'];
    9. $pubyear = $_POST['pubyear'];
    10. $price = $_POST['price'];
    11.  
    12. function addItemToCatalog ($title, $author, $pubyear, $price){
    13.     define ('DB_HOST','localhost');
    14.     define ('DB_LOGIN','root');
    15.     define ('DB_PASSWORD','');
    16.     define ('DB_NAME','eshop');
    17.     define ('ORDER_LOG','orders.log');
    18.  
    19.     $link = mysqli_connect(DB_HOST,DB_LOGIN,DB_PASSWORD,DB_NAME)or die (mysqli_connect_error());
    20.  
    21.     $sql = "INSERT INTO catalog (title, author, pubyear, price) VALUES (?, ?, ?, ?)";
    22.        if (!$stmt = mysqli_prepare($link, $sql))
    23.         return false;
    24.     mysqli_stmt_bind_param($stmt, "ssii", $title, $author,$pubyear, $price);
    25.     mysqli_stmt_execute($stmt);
    26.     mysqli_stmt_close($stmt);
    27.     return true;
    28. }
    29. if(!addItemToCatalog($title, $author, $pubyear, $price)){
    30.     echo 'Произошла ошибка при добавлении товара в каталог';
    31. }else{
    32.     header("Location: add2cat.php");
    33.     exit;
    34. }
    35.  
    36.  
    37.  
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Отлично, а почему define в addItemToCatalog так в каждой функции новое подключение к базе идёт?
     
  7. dnemin

    dnemin Новичок

    С нами с:
    20 фев 2016
    Сообщения:
    3
    Симпатии:
    0
    я просто собрал все в одну функцию, чтобы найти ошибку было легче. Сейчас раскидаю по файлам.
     
  8. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    denis01, не ругай новичком =) Бывает столько дефине нельзя если помню что повтор дефине вызавет ошибка!