Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] Загрузка файла с записью url в таблицу базы mysql (http://forum.oszone.net/showthread.php?t=233333)

cibin 22-04-2012 23:11 1904225

Загрузка файла с записью url в таблицу базы mysql
 
Требуется загрузка файла на вэб сервер с выводом пути к файлу, да так что бы он прописал его в ячейку таблицы. Я сделал таким образом:

PHP код:

require_once "bdconnect.php";   $files_dir 'files/';   if(isset($_FILES["file"])) {      if( is_uploaded_file$_FILES["file"]["tmp_name"] ) )     {         move_uploaded_file$_FILES["file"]["tmp_name"], $files_dir.$_FILES["file"]["name"] );                  // Тут выводим ссылку         $file = $files_dir.$_FILES["file"]["name"];         } }   $sSQL=mysql_query("INSERT INTO `dogovor` (`id`, `file`) VALUES (NULL, $file)"); $result=mysql_query($sSQL, $link);     echo "$file"; 

Но он кроме как загружать файл дальше не идёт! Т.е. в таблицу значение $file не записывает! Может подскажите где сабка зарыта!?

Sham 23-04-2012 01:52 1904278

Оформите код, уточните переносы строк.

cibin 23-04-2012 07:40 1904323

PHP код:

require_once "bdconnect.php";   
$files_dir 'files/';  
if(isset(
$_FILES["file"])) 
{      if( 
is_uploaded_file$_FILES["file"]["tmp_name"] ) )     
{         
move_uploaded_file$_FILES["file"]["tmp_name"], $files_dir.$_FILES["file"]["name"] );                
  
// Тут выводим ссылку         
$file $files_dir.$_FILES["file"]["name"];         

}   
$sSQL=mysql_query("INSERT INTO `dogovor` (`id`, `file`) VALUES (NULL, $file)"); 
$result=mysql_query($sSQL$link);     
echo 
"$file"


cibin 23-04-2012 18:04 1904616

не ужели ни кто подобное не делал?

Sham 23-04-2012 20:19 1904678

Цитата:

Цитата cibin
$sSQL=mysql_query("INSERT INTO `dogovor` (`id`, `file`) VALUES (NULL, $file)");
$result=mysql_query($sSQL, $link); »

Определитесь, в какой строке используете mysql_query. И в запросе $file без кавычек + нужно экранирование. RTM.

PHP код:

$sSQL "INSERT INTO `dogovor` (`id`, `file`) VALUES (NULL,  '"mysql_real_escape_string($file)."')"
$result mysql_query($sSQL$link); 


cibin 23-04-2012 23:00 1904735

спасибо за совет но не помогло!

Sham 23-04-2012 23:11 1904739

сделайте в конце
PHP код:

echo mysql_error(); 

и ловите текст ошибки.

cibin 23-04-2012 23:16 1904743

Оооооооочень странно, решил поэкспериментировать и написал так:

PHP код:

require_once "bdconnect.php";
mysql_query("SET NAMES cp1251");

if (isset(
$_REQUEST['id'])) { $id $_REQUEST['id'];}
 
$files_dir 'files/';
 
if(isset(
$_FILES["file"]))

    if( 
is_uploaded_file$_FILES["file"]["tmp_name"] ) )
    {
        
move_uploaded_file$_FILES["file"]["tmp_name"], $files_dir.$_FILES["file"]["name"] );
        
        
// Тут выводим ссылку
        
$url $files_dir.$_FILES["file"]["name"];
   
    }
}
 
$sSQL=mysql_query("INSERT INTO `dogovor` (`id`, `file`) VALUES (NULL, '$url')");
$result=mysql_query($sSQL); 

В результате записалась одна запись!
почему NULL не прошел?

Цитата:

Цитата Sham
сделайте в конце
PHP код:
echo mysql_error();
и ловите текст ошибки. »


Выдал "Query was empty"

Написал таким образам:
PHP код:

$sSQL="INSERT INTO `dogovor` (`id`, `file`) VALUES (NULL, '$url')";
$result=mysql_query($sSQL);
 
echo 
mysql_error(); 




Выдало сообщение: "Column 'id' cannot be null"

cibin 23-04-2012 23:47 1904753

Всё разобрался Всем спасибо оказалось я забыл в поле id таблицы автоинкремент!


Время: 02:10.

Время: 02:10.
© OSzone.net 2001-