Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ошибка в mysql запросе
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Ошибка в mysql запросе

Страниц (1): [1]
 

1. Russer - 10 Февраля, 2015 - 13:19:35 - перейти к сообщению
Перепробовал уже все что мог , не могу справиться с задачей , нужно получить id последней записи таблицы с ее последующим выводом , при выполнение выдает ошибку Warning: mysql_query() expects parameter 1 to be string, object given in .. on line 14
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Хост
  3. $db_host = "localhost";
  4. // Имя базы данных
  5. $db_name = "dog";
  6. // Логин для подключения к базе данных
  7. $db_user = "root";
  8. // Пароль для подключения к базе данных
  9. $db_pass = "";
  10. // Подключаемся к бд
  11. $db = mysqli_connect ($db_host, $db_user, "", $db_name) or die ("Невозможно подключиться к БД");
  12. @mysqli_query ($db, 'set character_set_results = "utf8"');
  13.  // Получаем последний id в колонке.
  14. $query = mysql_query($db, " SELECT MAX(`id`) FROM `pn`") or die (mysql_error());
  15. // Выводим его
  16. echo $query;
  17. // Закрываем соединение
2. Sail - 10 Февраля, 2015 - 13:25:28 - перейти к сообщению
Russer, определитесь уж, mysql, или mysqli используете... А то в 14-й строке вызов функции из одной библиотеки, а в 11-й, например - из другой.
3. GoDr - 10 Февраля, 2015 - 13:28:53 - перейти к сообщению
запрос и идентификатор ещё бы местами поменять
4. Russer - 10 Февраля, 2015 - 13:37:41 - перейти к сообщению
Sail пишет:
Russer, определитесь уж, mysql, или mysqli используете... А то в 14-й строке вызов функции из одной библиотеки, а в 11-й, например - из другой.

Спасибо, не заметил даже! Но теперь другая проблема
Catchable fatal error: Object of class mysqli_result could not be converted to string in on line 16
Нужно в строку перевести, как я понимаю ?
(Добавление)
GoDr пишет:
запрос и идентификатор ещё бы местами поменять

Я попробовал но теперь выдает еще больше ошибок , и в другом файле делал запрос на добавление строк в таблицу , по этому же принципу , все работало... Может я и не прав.
5. GoDr - 10 Февраля, 2015 - 13:56:41 - перейти к сообщению
а вот в mysqli_query всё наоборот

Цитата:
mysql_query ( string $query [, resource $link_identifier = NULL ] )
mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
6. Russer - 10 Февраля, 2015 - 14:00:15 - перейти к сообщению
Sail пишет:
Russer, определитесь уж, mysql, или mysqli используете... А то в 14-й строке вызов функции из одной библиотеки, а в 11-й, например - из другой.

Дописал строчку
$b = mysqli_fetch_row($query);
echo $b;
Теперь выдает просто Array.
(Добавление)
GoDr пишет:
а вот в mysqli_query всё наоборот

Цитата:
mysql_query ( string $query [, resource $link_identifier = NULL ] )
mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

Спасибо буду знать!
7. GoDr - 10 Февраля, 2015 - 14:11:12 - перейти к сообщению
Russer пишет:
Спасибо буду знать!
Не надо знать, забудь про MySQL вообще Улыбка
(Добавление)
Russer пишет:
Теперь выдает просто Array.
Выполни сам запрос в каком-нибудь менеджере: phpMyAdmin или HeidiSQl, и сможешь увидеть работает ли вообще запрос или выдаёт кучу ошибок
8. Russer - 10 Февраля, 2015 - 14:20:00 - перейти к сообщению
GoDr пишет:
Russer пишет:
Спасибо буду знать!
Не надо знать, забудь про MySQL вообще Улыбка
(Добавление)
Russer пишет:
Теперь выдает просто Array.
Выполни сам запрос в каком-нибудь менеджере: phpMyAdmin или HeidiSQl, и сможешь увидеть работает ли вообще запрос или выдаёт кучу ошибок

Ну зачем же так то , я конечно понимаю , что научиться очень сложно , но хотя бы представления о ней для выполнения легких скриптов получить бы хотелось )
В том то и дело , что пробую через разные запросы в mysql и все они дают нужный результат!
9. GoDr - 10 Февраля, 2015 - 14:59:07 - перейти к сообщению
Russer, я имел ввиду что MySQL устарел и больше не используется. И если ты учишься, то сразу начинай с современного Улыбка

и ещё, попробуй


Цитата:
mysqli_fetch_row() возвращает массив строк, соответствующих данным в выбранной строке результирующей таблицы, или NULL, если доступных строк больше нет.
10. Мелкий - 10 Февраля, 2015 - 15:39:38 - перейти к сообщению
GoDr пишет:
я имел ввиду что MySQL устарел и больше не используется

Всё-таки чтобы избежать путаницы, поясню эту фразу:
Сама СУБД MySQL пока ещё живая.
устарело расширение PHP для работы с MySQL, предоставляющее функции вида mysql_* и будет окончательно удалено уже в этом году.
mysqli - это другое расширение, его использовать можно. Так же как и PDO.
11. Russer - 11 Февраля, 2015 - 06:29:36 - перейти к сообщению
GoDr пишет:
Russer, я имел ввиду что MySQL устарел и больше не используется. И если ты учишься, то сразу начинай с современного Улыбка

и ещё, попробуй


Цитата:
mysqli_fetch_row() возвращает массив строк, соответствующих данным в выбранной строке результирующей таблицы, или NULL, если доступных строк больше нет.

Результат вот такой:
mysqli_result Object ( [current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 1 [type] => 0 )
Как я понимаю запрос проходит , но в виде объекта , и нужно как то передать его в строку?
(Добавление)
Может и не совсем корректно но решил через
printf ("ID новой записи: %d.\n", mysqli_insert_id($db));
Спасибо всем за помощь!

 

Powered by ExBB FM 1.0 RC1