4images Forum & Community
4images Help / Hilfe => Error Messages / Fehlermeldungen => Topic started by: V@no on September 07, 2008, 01:39:52 PM
-
This error occur when used 4images v1.7 / 1.7.1 (and/or some old mods) and MySQL v5.x
It caused by the changes in MySQL v5 handling multiple tables on one query.
If your 4images is newer then v1.7.1 and you still get these errors, then you must have installed a mod that is not MySQL v5 compatible.
There are three ways fix the problem:
1) Downgrade MySQL to v3 or v4
2) Upgrade your 4images
3) In .php files replace all
FROM table1 ref, table2 ref
with:
FROM (table1 ref, table2 ref)
There are quiet a few places needs to be fixed, so I'd recommend use a text editor which allows use unix regular expressions to search and modify files.
This REGEX string I've used in UltraEdit (http://www.ultraedit.com/index.html):(FROM\s+)("\.[A-Z_]+\."\s+[a-z]+,\s*"\.[A-Z_]+\."\s+[a-z]+)
and in replacing string used:\1(\2)
(http://img179.imageshack.us/img179/6278/fromvnoscreenshot200809pm8.png)
it worked quiet well. That editor allows search and replace string in files without opening them in the editor, which would be the fastest way, however I'd strongly recommend do a complete backup of all .php files before you attempt doing it.
I corrected this problem by running a perl command from the shell in the 4images root dir, the \admin dir and the \includes dir:
perl -pi '-es/(FROM\s+)("\.[A-Z_]+\."\s+[a-z]+,\s*"\.[A-Z_]+\."\s+[a-z]+)/$1($2)/g' *.php
This might be useful for people without access to Ultraedit.
Remember to BACK UP everything before you try this!
If you don't have such editor or for any other reasons can't use that REGEX, prepare yourself for a long journey modifying almost all 4images files manually.
The list below is only for non-modified 4images v1.7 / 1.7.1 That means if after fixing all these files you still getting errors there are only two reasons:
1) you missed a modification
2) you've installed a mod that also not MySQL v5 compatible.
In any case you'll need find and fix the problem yourself.
Hopefully after looking at the list below you'll understand what has to be changed.
Good luck.
Find in categories.php:FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
Replace with:FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
Find in details.php:FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
Replace with:FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
Find in index.php:FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
Replace with:FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
Find in lightbox.php:FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
Replace with:FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
Find in member.php (4 times):FROM ".COMMENTS_TABLE." c, ".IMAGES_TABLE." i
Replace with:FROM (".COMMENTS_TABLE." c, ".IMAGES_TABLE." i)
Find in postcards.php:FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
Replace with:FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
Find in postcards.php:FROM ".POSTCARDS_TABLE." p, ".IMAGES_TABLE." i
Replace with:FROM (".POSTCARDS_TABLE." p, ".IMAGES_TABLE." i)
Find in search.php:FROM ".WORDLIST_TABLE." w, ".WORDMATCH_TABLE." m
Replace with:FROM (".WORDLIST_TABLE." w, ".WORDMATCH_TABLE." m)
Find in search.php:FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
Replace with:FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
Find in top.php (4 times):FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
Replace with:FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
Find in admin\comments.php:FROM ".COMMENTS_TABLE." c, ".IMAGES_TABLE." i
Replace with:FROM (".COMMENTS_TABLE." c, ".IMAGES_TABLE." i)
Find in admin\home.php:FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s
Replace with:FROM (".USERS_TABLE." u, ".SESSIONS_TABLE." s)
Find in admin\usergroups.php:FROM ".GROUPS_TABLE." g, ".GROUP_MATCH_TABLE." gm
Replace with:FROM (".GROUPS_TABLE." g, ".GROUP_MATCH_TABLE." gm)
Find in includes\auth.php:FROM ".GROUP_ACCESS_TABLE." a, ".GROUP_MATCH_TABLE." m
Replace with:FROM (".GROUP_ACCESS_TABLE." a, ".GROUP_MATCH_TABLE." m)
Find in includes\functions.php (2 times):FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
Replace with:FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
Find in includes\sessions.php:FROM ".USERS_TABLE." u, ".LIGHTBOXES_TABLE." l
Replace with:FROM (".USERS_TABLE." u, ".LIGHTBOXES_TABLE." l)
-
thanks admin.
-
very nice
-
Hello,
i got 2 errors , any help.
An unexpected error occured. Please try again later.
Bad SQL Query: SELECT DISTINCT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads, i.image_votes, i.image_rating, i.image_hits, c.cat_name, u.user_name
FROM (4images_images i, 4images_categories c)
LEFT JOIN 4images_users u ON (u.user_id = i.user_id)
WHERE i.image_active = 1 AND i.cat_id NOT IN (0) AND c.cat_id = i.cat_id
ORDER BY i.image_downloads DESC LIMIT 1
Incorrect key file for table '/tmp/#sql_5169_3.MYI'; try to repair it
An unexpected error occured. Please try again later.
Bad SQL Query: SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads, i.image_votes, i.image_rating, i.image_hits, c.cat_name, u.user_name
FROM (4images_images i, 4images_categories c)
LEFT JOIN 4images_users u ON (u.user_id = i.user_id)
WHERE i.image_active = 1 AND c.cat_id = i.cat_id AND i.cat_id NOT IN (0)
ORDER BY RAND()
LIMIT 28
Incorrect key file for table '/tmp/#sql_5169_2.MYI'; try to repair it
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/logopub/public_html/includes/db_mysql.php on line 116
Read more: http://www.logopub.net/#ixzz1bhJFSAgI
-
Hello.
For this you'll need contact your server's administrator, something wrong with the server.
-
Hello.
For this you'll need contact your server's administrator, something wrong with the server.
Hello, I don't think from Server, i think for one of installed module.
-
Try google it, it's server's problem.
example: http://www.mysqlperformancetuning.com/a-fix-for-incorrect-key-file-for-table-mysql
-
Hello vano i dont understand this section
This REGEX string I've used in UltraEdit:
(FROM\s+)("\.[A-Z_]+\."\s+[a-z]+,\s*"\.[A-Z_]+\."\s+[a-z]+)
and in replacing string used:
\1(\2)
how can i do this? where is regex? is this a document in ftp? or php myadmin ?
Thank you.
-
<span id="result_box" class="short_text" lang="en" tabindex="-1">Good content was grateful</span>
<a href="https://ganjedaron.com">گروه تحقیقاتی</a>