2014-09-22 5 views
0

나는 이것을 지난 1 시간 동안 작동 시키려고 노력해 왔습니다. 모든 링크를 확인했는데 올바른 테이블이 참조되고 있습니다. documents.php에서 if 문을 제거하고 확인했지만 아무 것도 데이터를 테이블에 삽입하지 않았습니다. 또한 오류 로그를 확인했는데 오류가 없습니다.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

Q : 왜 'index.php'에 mysqli_ API를 사용하고 다른쪽에 PDO를 사용합니까? –

+2

연결이 열린 직후'$ dbh-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);를 추가하십시오. 또한 여는'

+0

PDO에서 아직 select 쿼리를 사용하는 방법을 찾지 못했기 때문에 삽입, 업데이트 및 삭제를 계산했습니다. –

답변

1

"프레드, 당신의 오류보고 제안은 나에게 내 문제가. 대답으로 당신의 코멘트를 추가하십시오 찾을 수있었습니다."

OP가 요청한대로 c 대답을 생략하면 질문을 닫을 수 있습니다.

추가 : 연결이 열릴

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

직후.

플러스, 바로 열면 아무것도 산출 경우 잠재적 인 오류를 검사하지 않는 때문에

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

는 참조 <?php 태그 한 후 파일 (들)의 상단에 error reporting를 추가합니다.

관련 문제