SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 10.12.2008 17:55:35

Sarkhan
Участник
Зарегистрирован: 04.04.2008
Сообщений: 20

Помогите с запросом

Есть скрипт загрузки файла на сервер

<?php
include ('../includes/config.php');
     $db = mysql_connect($host, $user, $pass);
     mysql_select_db($dbname, $db);
?>
<html>
<head>
  <title>Загрузка фото к материалу</title>
</head>
<body>
<div align="right">    <a href="javascript:window.close()">Закрыть окно</a></div>
<form action="m.php" method="post" enctype="multipart/form-data">
      <input type="file" name="filename"><br>
      <input type="submit" name="submit"  value="Загрузить"><br>
</form>

<?php


$mat_stamp = time ();
$mat_day = date ("Ymd");
$mat = "thumb$mat_day$mat_stamp.jpg";
$dir="../mat_img/".$mat;


   if($_FILES["filename"]["size"] > 1024*1*1024)
   {
     echo ("Размер файла превышает один мегабайт");
     exit;
   }
   if(copy($_FILES["filename"]["tmp_name"],$dir))
   {
     echo("Файл успешно загружен <br>");

   } else {
     echo("Ошибка загрузки файла");
   }
?>
<?php


     if ($submit) {

     $sql = mysql_query("INSERT INTO mat_photo (photo) VALUES ('$mat')");
     $result = mysql_query($sql);

     }
?>



</body>
</html>

Но он не записывает данные в базу. Но если перед запросом добавить foreach($HTTP_POST_VARS as $key => $val) $$key=$val; все нормально. Но ведь можно же обойтись и без этого, но как я не знаю. Помогите пожалуйста.

Отредактированно Sarkhan (11.12.2008 12:31:04)

Неактивен

 

#2 11.12.2008 20:06:05

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Помогите с запросом

Насколько я понял по первой и последней фразе, Вы хотите включить магические переменные.
Это делается в конфиге PHP. Впрочем, я категорически не рекомендую это делать по соображениям
безопасности. Гораздо полезнее каждый раз пользоваться $_POST[...].

Неактивен

 

#3 12.12.2008 04:28:02

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 848

Re: Помогите с запросом

А у Вас что-то не видно запроса, который записывает данные в базу...
Запрос INSERT INTO mat_photo (photo) VALUES ('$mat') записывает имя файла, но не содержимое..
Вам нужно что-то типа

$filename = $_FILES['filename']['tmp_name'];
$filedata = mysql_escape_string(file_get_contents($filename));
$sql = "INSERT INTO mat_photo (photo, столбец_где_тело_файла)  VALUES ('$mat', '".mysql_escape_string($filedata)."')";
$result = mysql_query($sql) or die(mysql_error());

Неактивен

 

#4 13.12.2008 10:39:55

Sarkhan
Участник
Зарегистрирован: 04.04.2008
Сообщений: 20

Re: Помогите с запросом

Мне как раз и нужно только имя. В принципе я разобрался в чем дело. Я изменил

if ($submit) {

     $sql = mysql_query("INSERT INTO mat_photo (photo) VALUES ('$mat')");
     $result = mysql_query($sql);

     }

просто на

mysql_query("INSERT INTO mat_photo (photo) VALUES ('$mat')");

и все нормализовалось. Спасибо большое!!!

Неактивен

 

#5 13.12.2008 16:57:33

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 848

Re: Помогите с запросом

странно... должно работать одинаково.
Ну ладно.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson