mysql — невозможно вставить значения данных с помощью pdo в переполнении стека

Здравствуйте, я пишу код для загрузки файла на сервер
и сохранить значения в базе данных 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();
}?>

1

Решение

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

`sub-category`

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

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

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

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


Понимание

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

  • Или, если это называется subcategory, Только вы знаете, как называется ваша колонка.
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]