2015-07-24 2 views
0

Я работаю с системой, которая назначает файлы пользователям. Проблема заключается в том, что ответ, идентификатор пользователя, всегда 0.Как получить ответ от базы данных MySQL с помощью PHP

$user = htmlentities($_SESSION['username']); 

$sql = "INSERT INTO `files`(
`userid`, 
`filename`, 
`filesize`, 
`filetype`, 
`filepath` 
) 
VALUES 
(\"". get_user_id($user). "\",\"". 
$_FILES['userfile']['name']. "\",\"". 
$_FILES['userfile']['size']. "\",\"". 
$_FILES['userfile']['type']. "\",\"". 
$fileadress. 
"\")"; 

Функция не get_user_id

function get_user_id($user){ 
mysql_connect(HOST, USER, PASSWORD) 
or die(mysql_error()); 

$sqlinit = "USE secure_login"; 
mysql_query($sqlinit); 

$sql = "SELECT `id` FROM `members` WHERE `username` = '". $user."'"; 
$result = mysql_query($sql); 
//mysql_fetch_array($result); 
echo mysql_error(); 
$userid = $result; 
return $userid; 
} 

нет ошибок, ни предупреждений, все остальное работает нормально, только идентификатор пользователя показывает всегда 0, даже если id в членах - 1,2 и т. д. Я что-то упускаю? В обеих таблицах идентификатор пользователя и id - int.

+0

Почему 'htmlentities' является именем пользователя? Вы должны использовать функцию mysql_real_escape_string на входе пользователя. – chris85

ответ

1

mysql_query() возвращает вам объект MySQL, вы поместите этот объект в переменной результата. Поэтому, если вы делаете $userid = $result;, вы просто дублируете массив на новую переменную.

Вы не обращается правильно к элементу, вы должны написать вместо: $userid = $result['id'];

Возьмите привычку использовать var_dump($result);, чтобы увидеть, что именно вы в переменной (здесь результат)

EDIT:

$sql = "SELECT id FROM members WHERE username = '". $user."'"; 
$queryRes = mysql_query($sql); 
$result = mysql_fetch_array($queryRes); 
$userid = $result['id']; 
+0

Я изменил код на ваши предложения и 'echo var_dump ($ result);' return 'resource (9) типа (результат mysql)' – SuperStarPL

+0

Oh ... Я не заметил 'mysql_fetch_array ($ result) ; 'комментируется. '$ sql =" SELECT id FROM members WHERE username = '". $ Пользователя «'». $ queryRes = mysql_query ($ sql); $ result = mysql_fetch_array ($ queryRes); $ userid = $ result ['id']; ' – Tuxity

+0

Подождите, я собираюсь отредактировать свой ответ, это не лизируется. – Tuxity

0

Я считаю, что вы должны использовать $userid=$result['id']

0

согласно вашей таблице, правый индекс будет userid

именно:

$userid = $result['id']; 
+0

Как вы расшифровали столбец 'userid'? – chris85

+0

Из ($ sql) переменной в коде OP – sango

+0

'files' и' members' - это две разные таблицы. – chris85

Смежные вопросы