У меня ошибка при вставке некоторого содержимого в базу данных Postgresql, когда я не прикрепляю какой-либо файл. У меня есть форма с некоторыми входными данными, которые я вставляю в одну таблицу, и один вход для загрузки нескольких файлов и некоторой информации в другую таблицу.
Ошибка при пустом вводе загрузки:
Неустранимая ошибка: вызов функции-члена prepare () для необъекта в C: \ wamp \ www \ arn \ upload.php в строке 60
ЛИНИЯ 60: $ sth = $ dbh-> prepare ("ВСТАВИТЬ INTO arn_info (arn, modelos, familias, problemma, solucao) VALUES (?,?,?,?,?)") ;
МОЯ ФОРМА:
<?php
$sth = $dbh->query("SELECT * FROM arn_info");
$sth->setFetchMode(PDO::FETCH_ASSOC);
if($sth){
$row = $sth->fetch();
echo '<form method="post" action="upload.php" enctype="multipart/form-data" >';
echo '<input type="hidden" name="id" />';
echo 'ARN: <input type="text" name="arn" /><br />';
echo 'Familias: <input type="text" name="familias" /> <br />';
echo 'Problema: <textarea class="tinymce" name="problema" cols="30" rows="10">';
echo '</textarea>';
echo 'Solução: <textarea class="tinymce" name="solucao" cols="30" rows="10">';
echo '</textarea>';
echo '<input type="hidden" name="MAX_FILE_SIZE" value="2000000">';
echo 'Anexos: <input name="userfile[]" type="file" class="multi" id="userfile">';
echo '<input name="upload" type="submit" class="box" id="upload" value="ADD ARN">';
echo '</form>';
}
?>
МОЙ ЗАГРУЗИТЬ И ВСТАВИТЬ PHP:
<?php
if(isset($_POST['upload']))
{
$uploadDir = 'uploads/';
$fileArn = $_POST['arn'];
$id = $_POST['id'];
$arn = $_POST['arn'];
$modelos = $_POST['modelos'];
$familias = $_POST['familias'];
$problema = $_POST['problema'];
$solucao = $_POST['solucao'];
foreach ($_FILES["userfile"]["error"] as $key => $error)
{
if ($error == UPLOAD_ERR_OK)
{
$fileName = $_FILES['userfile']['name'][$key];
$tmpName = $_FILES['userfile']['tmp_name'][$key];
$fileSize = $_FILES['userfile']['size'][$key];
$fileType = $_FILES['userfile']['type'][$key];
$folderName = $_POST['arn'] . "/";
if (!file_exists ( $uploadDir . $folderName )) {
$arnFolder = mkdir($uploadDir . $folderName, 0777);
}
$filePath = $uploadDir . $folderName . basename($fileName);
$result = move_uploaded_file($tmpName, $filePath);
if (!$result) {
echo "Error adding Files";
exit;
}
include 'includes/connection.php';
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
if (!file_exists ($fileName)) {
$info = array ($fileName , $fileSize , $fileType , $filePath , $fileArn );
$sth = $dbh->prepare("INSERT INTO upload2 (name, size, type, path , id_arn ) VALUES ( ? , ? , ? , ? , ? )");
$sth->execute($info);
}
}
} //END OF LOOP
$parametros = array($arn,$modelos,$familias,$problema,$solucao);
$sth = $dbh->prepare("INSERT INTO arn_info (arn , modelos , familias , problema , solucao) VALUES ( ? , ? , ? , ? , ? )");
$sth->execute($parametros);
if($sth){
header("location: admin.php?inserted=1");
}
}
?>
Если я прикрепляю один или несколько файлов, все работает отлично!
Спасибо