Error on MySQL Syntax - mysql

I'm trying to teach myself MySQL while working on a project at the same time. I'm using phpMyAdmin.
I'm getting the error: "#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 ''ps_category' ('id_category', 'id_parent', 'id_shop_default', 'level_depth', 'nl' at line 1"
My code:
INSERT INTO 'ps_category'
('id_category', 'id_parent', 'id_shop_default',
'level_depth', 'nleft', 'nright', 'active',
'date_add', 'date_upd', 'position', 'is_root_category')
VALUES (6,2,1,0,0,0,1,'2012-04-12 15:12:54','2012-04-12 15:12:54',1,0)
UPDATE:
I took off the single quotes and still getting the same error:
INSERT INTO ps_category
('id_category', 'id_parent', 'id_shop_default',
'level_depth', 'nleft', 'nright', 'active',
'date_add', 'date_upd', 'position', 'is_root_category')
VALUES (6,2,1,0,0,0,1,'2012-04-12 15:12:54','2012-04-12 15:12:54',1,0)

INSERT INTO `ps_category` (`id_category`, `id_parent`, `id_shop_default`, `level_depth`, `nleft`, `nright`, `active`, `date_add`, `date_upd`, `position`, `is_root_category`) VALUES (6,2,1,0,0,0,1,'2012-04-12 15:12:54','2012-04-12 15:12:54',1,0)
You are using a single quote on the table name. It should be ticks or nothing. It should be noted, the ticks help to ensure properly reading the table name. If you name your table a mysql reserved word, the ticks will prevent it from erroring

The table name should not be entered as a string literal, either remove these '' or put two '' and '' around it like so
INSERT INTO ps_category ...
Or
INSERT INTO `ps_category` ...

Table names should not be quoted

Related

Attempting to insert data into a column

I have a table called design_designs
The table contains 4 columns: id, key, value, nonceId
I'm attempting to run a query to insert into the table:
INSERT INTO design_designs(key, value, nonceId)
VALUES ('test key', 'test value', 'test nonce');
The error i get is:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'key, value, nonceId)
VALUES ('test key', 'test value', 'test nonce')' at line 1
Any idea what I'm doing wrong? According to the documentation on queries my query is correct. I'm obviously missing something.
key is a reserved word, you must delimit it:
INSERT INTO design_designs(`key`, value, nonceId) VALUES...

MySQL Update nth character in existing entry

How do I update a single character, in table 'units', column 'status' (varchar), at a specific position (varies)?
UPDATE units SET status = SELECT INSERT(status, 3, 1, '2') WHERE id='1'
When running this (in PHP) This give me an error 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version....'
Rather than the desired
Before '00000'
After '00200'
There are lots of examples of the SELECT INSERT function but all with a predefined string, rather than using an existing entry.
Thank you for your consideration.
Just remove the SELECT before INSERT(...
UPDATE units SET status = INSERT(status, 3, 1, '2') WHERE id='1'

Error while inserting in to a Mysql table which contain fields "from" and "to"

When I tried to insert into a table in Mysql with the following fields direction, from, to, message, I got the following error
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'from, to, message) VALUES ( 'outgoing','FROM_NUMBER','TO_NUMBER','asas')'
Query:
INSERT INTO corporate.sms (direction, from, to, message) VALUES ( 'outgoing','FROM_NUMBER','TO_NUMBER','test message');
Is there any other way to do the insertion without changing the column names?
Since field name such as 'from' and 'to' is reserved by MySQL's SQL syntax,
you need to wrap those field names by ` ( backquote ).
So your SQL will be
INSERT INTO corporate.sms (direction, `from`, `to`, message) VALUES ( 'outgoing','FROM_NUMBER','TO_NUMBER','test message');
from and to are reserved keywords in SQL.
The solution is quite simple. Just encapsulate the from and to columns in your query between two Grave Accents(``), which is the key above Tab in your keyboard. That way, SQL Parser distinguishes the column names with reserved keywords and performs the insertion.
The query becomes:
INSERT INTO corporate.sms (direction, `from`, `to`, message) VALUES ( 'outgoing','FROM_NUMBER','TO_NUMBER','test message');

SQL request truncated

I've got a little problem with a sql request:
my $sql resquest ( result of echo $sql ):
INSERT INTO match (id, id_match, login, real_login, reponse, date) VALUES (NULL, '11', 'CaptainRida', 'rbikitar', 'oui', '2014-06-07')
and the error
Error: 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 'match (id, id_match, login, real_login, reponse, date) VALUES
(NULL, '11', 'Capt' at line 1
the sql request is truncated at 'login'. always 4 characters and BAM truncated.
can anyone help me, I have THE SAME SQL RESQUEST with another table ( exactly the same except rencontre instead of match and id_rencontre instead of id_match)
the "rencontre" request works great and the "match" request is truncated in the error.
MATCH is a MySQL reserved word.
Enclose it in backticks:
insert into `match` (id, id_match, ...
Or, consider changing the name of the table to not use a reserved word (recommended).

Mysql insert statement where one value is given and on obtain from a subquery

I have the following query:
INSERT INTO `area`(name, fk_hub_id) VALUES ('$name',SELECT 'id' from hub WHERE name = '$hub_name')
What i am trying to do is insert a value (name= $name) which is obtained from a from and then the foreign key id of a certain hub which is obtained by the sub-query.
when I run this query i get the following error:
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 'SELECT 'id' from hub WHERE name = 'EASTERN_CAPE')' at line 1.
Is my query incorrect? Any suggestions how to do it?
Use ` around column_name, you are using ' around id column_name. Also use () for inner query.
INSERT INTO `area`(name, fk_hub_id) VALUES ('$name',SELECT 'id' from hub WHERE name = '$hub_name')
should be
INSERT INTO `area`(name, fk_hub_id) VALUES ('$name',(SELECT `id` from hub WHERE name = '$hub_name'))
Note : Your code is wide open for SQL injection, use prepared statement OR escape them.
Put the given value into the SELECT:
INSERT INTO area (name, fk_hub_id)
SELECT '$name', id
FROM hub
WHERE name = '$hub_name'
Try:
INSERT INTO `area` (name, fk_hub_id)
SELECT '$name',
id
FROM hub
WHERE name = '$hub_name'