Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2016, 20:52   #1
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию SQLlite -> MySQL

Здравствуйте, при переводе с базы SQLlite на MySQL перелопатил всю базу SQLlite, создал и импортировал дамп в базу MySQL.

После этого в скриптах заменил:
Было
PHP код:
$query $sqlite_db->query("SELECT * FROM tracks WHERE remove = 'false' ORDER BY comment");
$tracks $query->fetchAll(SQLITE_ASSOC); 
Переписал так
PHP код:
$tracks  mysql_query("SELECT * FROM tracks WHERE remove = 'false' ORDER BY comment"); 
Появидась ошибка при выполнении скрипта
в таком месте
PHP код:
240.        // sort after ip
241.        $order = array();
242.        foreach($tracks as $track) {
243.          if (filter_var($track['ip'], FILTER_VALIDATE_IPFILTER_FLAG_IPV4)) $order[$track['comment']][ip2dec($track['ip'])] = $track;   // IP Version 4
244.          if (filter_var($track['ip'], FILTER_VALIDATE_IPFILTER_FLAG_IPV6)) $order[$track['comment']][$track['ip']] = $track;  // IP Version 6
245.        
Warning: Invalid argument supplied for foreach() in Z:\home\test1.ru\www\tracker.php on line 242

Подскажите пожалуйста в чем ошибка, пробовал по разному, все никак не могу понять, что еще можно попробовать
denis76560 вне форума Ответить с цитированием
Старый 02.03.2016, 21:05   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Читайте документацию по mysql_query, проверяйте возвращаемое значение, выводите куда-нибудь mysql_error() или что там текст ошибки отдает.

И используйте mysqli_ вместо mysql_, оно deprecated давно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.03.2016, 21:50   #3
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ошибка из-за того, что в foreach вместо массива передаётся resource результатов запроса.

При использовании MySQLi это будет примерно так:
PHP код:
$link mysqli_connect('localhost''my_user''my_password''my_db');
if(
mysqli_connect_error()) {
    die(
mysqli_connect_error());
}

$tracks = array();
if(
$result mysqli_query($link"SELECT * FROM tracks WHERE remove = 'false' ORDER BY comment")){
    
$tracks mysqli_fetch_all($resultMYSQLI_ASSOC);

Или в ОО-стиле:
PHP код:
$mysqli = new mysqli('localhost''my_user''my_password''my_db');
if(
mysqli_connect_error()) {
    die(
mysqli_connect_error());
}

$tracks = array();
if(
$result $mysqli->query("SELECT * FROM tracks WHERE remove = 'false' ORDER BY comment")){
    
$tracks $result->fetch_all(MYSQLI_ASSOC);

Andkorol вне форума Ответить с цитированием
Старый 02.03.2016, 21:56   #4
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Ошибка из-за того, что в foreach вместо массива передаётся resource результатов запроса.

При использовании MySQLi это будет примерно так:
PHP код:
$link mysqli_connect('localhost''my_user''my_password''my_db');
if(
mysqli_connect_error()) {
    die(
mysqli_connect_error());
}

$tracks = array();
if(
$result mysqli_query($link"SELECT * FROM tracks WHERE remove = 'false' ORDER BY comment")){
    
$tracks mysqli_fetch_all($resultMYSQLI_ASSOC);

Или в ОО-стиле:
PHP код:
$mysqli = new mysqli('localhost''my_user''my_password''my_db');
if(
mysqli_connect_error()) {
    die(
mysqli_connect_error());
}

$tracks = array();
if(
$result $mysqli->query("SELECT * FROM tracks WHERE remove = 'false' ORDER BY comment")){
    
$tracks $result->fetch_all(MYSQLI_ASSOC);

Спасибо большое !
Сейчас попробую Ваш вариант.
denis76560 вне форума Ответить с цитированием
Старый 03.03.2016, 00:38   #5
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию

Andkorol,Alex11223 спасибо за помощь, Вопрос решен ! =)

Последний раз редактировалось denis76560; 03.03.2016 в 00:57.
denis76560 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQLlite: хранение изображений Notan1310 Java Мобильная разработка (Android) 0 25.12.2015 15:44
SQLLite, сложно ли освоить? Алексей_2012 SQL, базы данных 3 12.08.2014 05:00
SQLLite в Delphi XE5 SpawNBK БД в Delphi 2 04.04.2014 16:08
SqlLite многопользовательский доступ ilich7 БД в Delphi 0 20.12.2012 05:37
С# + SQLLite j0hn-0 SQL, базы данных 0 18.06.2010 16:43