2015-10-09 3 views
-1

Пожалуйста, я пытаюсь вставить в базу данных, но я не понимаю ее. Я получаю эту ошибкуВставка в базу данных с использованием PDO

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''mp3')' at line 1' in C:\wamp\www\livingwordmedia\admin\upload-script.php on line 28

Пожалуйста, что я делаю неправильно.

Вот мой код:

<?php require 'header.php'; require 'upload-script.php'; ?> 

<body> 
    <div id="wrapper"> 
    <!-- Navigation --> 
    <?php require 'nav.php'; ?> 
    <div id="page-wrapper"> 
     <div class="container-fluid"> 
     <!-- Page Heading --> 
     <div class="row"> 
     <div class="col-lg-12"> 
      <h1 class="page-header">Upload <small>audio/video/pdf</small></h1>  
     </div> 
     </div> 

     <div class="row"> 

     <form action="" method="POST"> 
     <div class="col-lg-6"> 
      <div class="form-group"> 
       <label>Title</label> 
       <input type="text" class="form-control" name="title" placeholder="Enter Title"> 
      </div> 

      <div class="form-group"> 
       <label>Description</label> 
       <input type="text" class="form-control" name="description" placeholder="Short Description...."> 
      </div> 
      <div class="form-group"> 
       <label>Download Link</label> 
       <input type="text" class="form-control" name="download_link" placeholder="Download link"> 
      </div> 
      </div> 

      <div class="col-lg-6"> 
      <div class="form-group"> 
       <label>Category</label> 
       <select name="category" class="form-control"> 
       <option value="category 1">Category 1</option> 
       <option value="category 2">Category 2</option> 
       <option value="category 3">Category 3</option> 
       <option value="category 4">Category 4</option> 
       </select> 
      </div> 

      <div class="form-group"> 
       <label>Format</label> 
       <select name="format" class="form-control"> 
       <option value="mp3">Mp3</option> 
       <option value="mp4">Mp4</option> 
       <option value="pdf">PDF</option> 
       </select> 
      </div> 

      <button type="submit" name="submit" class="btn btn-default">Submit</button> 
      </div> 
     </form> 
     </div> 
     </div> 



     </div> 
    </div> 

<?php require 'footer.php'; ?> 

Вот мой сценарий загрузки:

<?php 

require 'functions.php'; 

if(isset($_POST['title']) && isset($_POST['description']) && isset($_POST['download_link']) && isset($_POST['category']) && isset($_POST['format'])){ 
    $title = trim($_POST['title']); 
    $description = trim($_POST['description']); 
    $download_link = trim($_POST['download_link']); 
    $category = ($_POST['category']); 
    $format = ($_POST['format']); 



    if(!empty($title) && !empty($description) && !empty($download_link) && !empty($category) && !empty($format)){ 

      $query = $conn->prepare("SELECT title FROM libraries WHERE title = :title"); 
      $query->bindParam(':title', $title); 
      $query->execute(); 



      if($query->rowCount() > 0){ 
       echo 'Title already exist'; 
      } 
     else{ 
     $query = "INSERT INTO libraries (id, title, description, download_link, category, format) VALUES ('','".mysql_real_escape_string($title)."','".mysql_real_escape_string($description)."','".mysql_real_escape_string($download_link)."','".mysql_real_escape_string($category)."', ,'".mysql_real_escape_string($format)."')"; 

     if($conn->query($query)){ 
      echo "upload completed"; 
     }else{ 
      echo "Upload not completed"; 
     } 
    } 
} 
} 
?> 

Pls кто-то должен помочь.

+0

Я настоятельно рекомендую посмотреть подготовленные заявления с библиотекой PDO (http://php.net/manual/en/book.pdo.php) в качестве альтернативы созданию SQL-строки таким образом из-за риска SQL инъекции. – bunnmatt

+1

Не смешивайте mysql_ и PDO! Вы делаете это совершенно неправильно. Узнайте, как связывать параметры с помощью PDO, а не некоторый ужасный микс, включающий функции mysql_. – deceze

ответ

0

У вас есть дополнительная запятая между полями «категория» и «формат» в части VALUES вашей строки SQL.

Смежные вопросы