2014-09-22 6 views
0

Я пытался заставить это работать в течение последнего часа. Я проверил все ссылки и ссылки на правую таблицу. Я удалил оператор if из document.php и проверил, но ничего не вставляет данные в таблицу. Я также проверил журнал ошибок, и я не получаю никаких ошибок.Вставить с PDO не работает

index.php

<div class="content"> 
<?php if (Session::get('user_logged_in') == true AND $admin == 1):?> 
<form action="../processes/documents.php" method="post" class="pure-form pure-form-aligned"> 
    <legend>Add Document</legend> 
     <fieldset> 
     <div class="pure-control-group"> 
       <input type="text" name="documentnumber" placeholder="Document Number"> 
       </div>         
       <div class="pure-control-group"> 
       <input type="text" name="documentdate" placeholder="Document Date"> 
       </div> 
       <div class="pure-control-group"> 
       <input type="text" name="expirationdate" placeholder="Document Expiration Date"> 
       </div> 
       <div class="pure-control-group"> 
       <input type="text" name="description" placeholder="Description"> 
       </div>        
       <div class="pure-control-group"> 
       <select name="artistname"> 
        <?php 
         $con=mysqli_connect("$hostname","$username","$password","saintfiv_artists"); 
         if (mysqli_connect_errno($con)) 
         { 
         echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
         } 

         $result2 = mysqli_query($con,"SELECT * FROM artists ORDER BY `artistname`"); 

         while($row2 = mysqli_fetch_array($result2)) 
         { 
         echo '<option value="' . $row2['artistname'] . '">' . $row2['artistname'] . '</option>'; 
         } 
        ?> 
       </select> 
       </div> 
       <div class="pure-control-group"> 
       <select name="artwork">'; 
        <?php 
         $dir = '../documents/'; 
         $files = scandir($dir); 
         foreach ($files as $filename) { 
          if ($filename != '.' AND $filename != ".."){ 
          echo "<option value='" . $filename . "'>".$filename."</option>"; 
          } 
         } 
        ?> 
       </select> 
       </div>        
       <div class="pure-control-group">    
       <button type="submit" name="adddocument" class="pure-button pure-button-primary">Add</button> 
       </div> 
     </fieldset> 
</form> 
<?php endif; ?> 
</div> 

documents.php

<?php 
if (isset($_POST['adddocument'])) { 
include_once('../config/mysql.php'); 

$document_number = $_POST['documentnumber']; 
$document_date = $_POST['documentdate']; 
$document_expiration_date = $_POST['expirationdate']; 
$description = $_POST['description']; 
$artist_name = $_POST['artistname']; 
$document_name = $_POST['documentname']; 

try { 
    $dbh = new PDO("mysql:host=$hostname;dbname=saintfiv_artists", $username, $password); 
    $stmt = $dbh->prepare("INSERT INTO documents(`document_number`, `document_date`, `document_expiration_date`, `description`, `artist_name`, `document_name`) VALUES (:document_number, :document_date, :document_expiration_date, :description, :artist_name, :document_name)"); 
    $stmt->bindParam(':document_number', $document_number, PDO::PARAM_STR); 
    $stmt->bindParam(':document_date', $document_date, PDO::PARAM_STR); 
    $stmt->bindParam(':document_expiration_date', $document_expiration_date, PDO::PARAM_STR); 
    $stmt->bindParam(':description', $description, PDO::PARAM_STR); 
    $stmt->bindParam(':artist_name', $artist_name, PDO::PARAM_STR); 
    $stmt->bindParam(':document_name', $document_name, PDO::PARAM_STR); 
    $stmt->execute(); 
    } 
catch(PDOException $e) 
    { 
    echo $e->getMessage(); 
    } 
} 

header("Location: http://www.saint57records.com/artistreports/documents/index"); 
?> 
+1

В: Почему вы используете API 'mysqli_' для' index.php' и PDO для другого? –

+2

Добавьте '$ dbh-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);' сразу после открытия соединения. Кроме того, добавьте отчет об ошибках в начало вашего файла (ов) сразу после открытия тега '

+0

Это потому, что я не понял, как использовать запрос select еще с PDO, я до сих пор понял вставку, обновление и удаление. –

ответ

1

"Фред, ваша ошибка отчетности предложение помогло мне найти мою проблему. Оставить свой комментарий как ответ."

В соответствии с требованиями ОП, c чтобы ответить, чтобы закрыть вопрос.

Добавить:

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

сразу после подключения открыт.

Plus, добавьте error reporting в верхней части файла (ов) сразу после открытия <?php тега

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

увидеть, если он дает что-нибудь, так как вы не проверять потенциальных ошибок.

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