Я пытался заставить это работать в течение последнего часа. Я проверил все ссылки и ссылки на правую таблицу. Я удалил оператор 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");
?>
В: Почему вы используете API 'mysqli_' для' index.php' и PDO для другого? –
Добавьте '$ dbh-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);' сразу после открытия соединения. Кроме того, добавьте отчет об ошибках в начало вашего файла (ов) сразу после открытия тега ' Php' ' error_reporting (E_ALL); ini_set ('display_errors', 1); 'см., если это что-то дает, поскольку вы не проверяете наличие возможных ошибок. –
Это потому, что я не понял, как использовать запрос select еще с PDO, я до сих пор понял вставку, обновление и удаление. –