PDA

Показать полную графическую версию : [решено] Загрузка файла с записью url в таблицу базы mysql


cibin
22-04-2012, 23:11
Требуется загрузка файла на вэб сервер с выводом пути к файлу, да так что бы он прописал его в ячейку таблицы. Я сделал таким образом:

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
Оформите код, уточните переносы строк.

cibin
23-04-2012, 07:40
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
не ужели ни кто подобное не делал?

Sham
23-04-2012, 20:19
$sSQL=mysql_query("INSERT INTO `dogovor` (`id`, `file`) VALUES (NULL, $file)");
$result=mysql_query($sSQL, $link); »

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

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

cibin
23-04-2012, 23:00
спасибо за совет но не помогло!

Sham
23-04-2012, 23:11
сделайте в конце
echo mysql_error();
и ловите текст ошибки.

cibin
23-04-2012, 23:16
Оооооооочень странно, решил поэкспериментировать и написал так:

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 не прошел?

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


Выдал "Query was empty"

Написал таким образам:
$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
Всё разобрался Всем спасибо оказалось я забыл в поле id таблицы автоинкремент!




© OSzone.net 2001-2012