Здравствуйте, я пишу код для загрузки файла на сервер
и сохранить значения в базе данных Mysql
Я могу загрузить файл, но сталкиваюсь с проблемами при вставке значений в MYSQL сервер
Я извлекаю значения из формы 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();
}?>
Ваш sub-category
столбец в вашем запросе, содержит дефис. Это должно быть экранировано с помощью галочек.
`sub-category`
добавлять $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
сразу после открытия соединения, что бы сигнализировало об ошибке.
SQL оценивает это как математическую проблему (минус).
Другой вариант — переименовать столбец в sub_category
с подчеркиванием, без необходимости избежать его.
Понимание
Если случайно ваша колонка называется sub_category
вместо sub-category
как показано в вашем запросе / вопросе, тогда вам нужно будет изменить его на sub_category
в вашем запросе.
subcategory
, Только вы знаете, как называется ваша колонка.Других решений пока нет …