2014-09-30 4 views
1

Здравствуйте, я пишу код для загрузки файла на сервер и сохраняю значения в базе данных Mysql Я могу загрузить файл, но столкнулся с проблемами при вставке значений сервер MYSQLне удалось вставить значения данных с помощью pdo в PHP

Я извлечения значений из HTML-формы, и я успешно смог получить значения и был в состоянии повторить из файла Помощь необходима в вставке в таблицу части кода

<?php 
require "test.php"; 
$username=$_POST['username']; 
$filename=$_FILES['uploadedfile']['name']; 
$language=$_POST['language']; 
$comment=$_POST['comment']; 

$user_id=$_POST['user_id']; 
$filenames=$_FILES['uploadedfile']['name']; 

$category=$_POST['category']; 
$subcategory=$_POST['subcategory']; 
$comment=$_POST['comment']; 
$language=$_POST['language']; 
$duration=$_POST['duration']; 


$domain ='example.com/store/upload/'; 
$path=$domain.$category.'/'.$filenames; 
//$path=$domain.$category.'/'.$filenames; 


// Where the file is going to be placed 
$target_path = "upload/".$category.'/'; 

/* Add the original filename to our target path. 
Result is "uploads/filename.extension" */ 
$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
    echo "The file ". basename($_FILES['uploadedfile']['name']). 
    " has been uploaded"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
    echo "filename: " . basename($_FILES['uploadedfile']['name']); 
    echo "target_path: " .$target_path; 
} 



echo $filenames."<br />"; 
echo $domain."<br />"; 
echo $category."<br />"; 
echo $path."<br />"; 
echo $filename."<br />"; 
echo $language."<br />"; 
echo $comment."<br />"; 
echo $subcategory."<br />"; 
echo $duration."<br />"; 
echo $user_id."<br />"; 


// query 
try{ 


$sql="INSERT INTO vup_file(filename,path,category,sub-category,user_id,comment,language,duration) 
VALUES (:filename,:path,:category,:subcategory,:user_id,:comment,:language,:duration)"; 
$query=$conn->prepare($sql); 

$query->execute(array(':filename'=>$filename,':path'=>$path,':category'=>$category,':subcategory'=>$subcategory,':user_id'=>$user_id,':comment'=>$comment,':language'=>$language,':duration'=>$duration)); 
echo 'Inserted'; 


}catch(PDOException $e) 
{ 
echo 'ERROR OCCURED : '.$e->getMessage(); 
} 


?>  
+0

У вас возникли ошибки? –

+1

@JayBlanchard Проблема решена;) –

ответ

2

Ваш sub-category столбец в вашем запросе, содержит дефис. Его нужно избегать с обратными окнами.

`sub-category` 

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

SQL оценивает его как математическую проблему (минус).

  • Что переводится "суб" минус "категория".

Другой вариант, который у вас есть, - просто переименовать столбец в sub_category с подчеркиванием, без необходимости его избегать.


проницательность

Если случайно ваша колонка называется sub_category вместо sub-category, как показано в вашем запросе/вопрос, то вам нужно будет изменить его sub_category в запросе.

  • Или, если это называется subcategory. Только вы знаете, что называется вашей колонкой.
Смежные вопросы