0

So, we use a script called "phpmydirectory", and at this point it's pretty outdated. It wasn't designed to work on PHP 7+ or MySQL 5.7+ but we're mostly making it work.

Part of the script, you can import new "listings (like articles on a blog)" from a .csv file. We recently updated our database server from Ubuntu 18.04 to 20.04 and MySQL also updated to 8 from 5.7 (we have some strict mode settings turned off for date_time format etc).

I am seeing this error when importing and I'm not sure why:

Fatal Error: Database (1064) SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near 'ROW, @previous_parent_id := parent_id, parent_id, id FROM pmd_lo' at line 1 in 
file /usr/www/dd/phpmyd/includes/class_database.php on line 202 (SQL: UPDATE pmd_locations a, (SELECT IF(@previous_parent_id = 
parent_id, @row := @row +1, @row :=1) AS ROW, @previous_parent_id := parent_id, parent_id, id FROM pmd_locations JOIN (SELECT @row :=0, 
@previous_parent_id :=0) i ORDER BY parent_id, left_) aa SET a.child_row_id = aa.row WHERE a.parent_id = aa.parent_id AND a.id = aa.id) in 
/usr/www/dd/phpmyd/includes/class_database.php on line 207

Here is the trace:

File: /usr/www/dd/phpmyd/includes/class_tree_gateway.php   
Line: 111   
Class: Database   
Relevant PHP/MYSQL code:   
https://www.paste.org/112726 
File: /usr/www/dd/phpmyd/includes/class_imports.php   
Line: 666   
Class: Tree_Gateway   
Relevant PHP/MYSQL code:    
https://www.paste.org/112731  
File: /usr/www/dd/phpmyd/cp/admin_ajax.php
Line: 616
Class: Imports
Relevant PHP/MYSQL code:    
https://www.paste.org/112732

I'm really not sure here. Apologies.

1
  • 1
    Based on the keyword and reserved words information since version 8.0.2, ROW is now a reserved word. So simply add quotes (or backticks) around that alias should help, such as: 'ROW'. There, and anywhere else the same may be needed. Commented Nov 20, 2020 at 1:52

1 Answer 1

1

Based on the keyword and reserved words information since version 8.0.2, ROW is now a reserved word:

enter image description here

So simply add quotes (or backticks) around that alias should help, such as: 'ROW'. There, and anywhere else the same may be needed.

enter image description here

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.