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");
?>
Q : 왜 'index.php'에 mysqli_ API를 사용하고 다른쪽에 PDO를 사용합니까? –
연결이 열린 직후'$ dbh-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);를 추가하십시오. 또한 여는' php' 태그 바로 뒤에 파일 상단에 오류보고를 추가하십시오. 'error_reporting (E_ALL); ini_set ('display_errors', 1); '잠재적 오류를 확인하지 않으므로 아무 것도 출력되지 않는지 확인하십시오. –
PDO에서 아직 select 쿼리를 사용하는 방법을 찾지 못했기 때문에 삽입, 업데이트 및 삭제를 계산했습니다. –