У меня есть база данных, и я пытаюсь загрузить изображение на нее. База данных называется «blob» и имеет 3 поля. id, имя и изображение, с изображением, установленным как blob. При попытке загрузить изображение я получаю сообщение об ошибке, о котором я не знаю. Ниже мой код.PHP Загрузить изображение в базу данных mysql с помощью PDO?
<?php
include ("dbConnect.php");
?>
<form action="imageuploadtest.php" enctype="multipart/form-data" method="post">
<input name="image" type="file"><input name="submit" type="submit" value="Upload">
</form>
<?php
if(isset($_POST['submit']))
{
$imageName = $_FILES["image"]["name"];
$imageData = file_get_contents($_FILES["image"]["tmp_name"]);
$imageType = $_FILES["image"]["type"];
if(substr($imageType,0,5)=="image")
{
$dbQuery = $db->prepare("INSERT INTO blob (name, image) VALUES ('$imageName', '$imageData')");
$dbQuery->execute();
}
else
{
echo "only images are allowed";
}
}
?>
Соединение с базой данных в порядке, но я получаю следующее сообщение об ошибке, которое я знаю о том, как исправить.
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters' in N:\ftp\compc\d12ac1\FlightsFromNI\imageuploadtest.php:23 Stack trace: #0 N:\ftp\compc\d12ac1\FlightsFromNI\imageuploadtest.php(23): PDO->prepare('INSERT INTO blo...') #1 {main} thrown in N:\ftp\compc\d12ac1\FlightsFromNI\imageuploadtest.php on line 23.
Любая помощь будет оценена по достоинству. Благодарю.
EDIT: изменили ли мое имя таблицы с blob на imgupload, но все равно получите такое же сообщение об ошибке?
'blob' - зарезервированное слово в mysql. Вам придется приложить имя таблицы в обратном направлении. Лучше избегать использования зарезервированных слов в качестве имен таблиц или столбцов. –
вы не используете 'PDO' правильно и подпадают под SQL-инъекции в том виде, в котором вы его используете. – cmorrissey
, и если вы действительно хотите использовать «blob» в качестве имени вашей таблицы, измените его в своем запросе на «INSERT INTO' 'blob \' ... » – D3F