Ошибка выполнения PDO для значения int - PullRequest
0 голосов
/ 19 марта 2011

Я пытаюсь сохранить метку времени UNIX с помощью PDO exec, но получаю нарушение прав доступа:

check the manual that corresponds to your MySQL server version for the

правильный синтаксис для использования рядом с '1300507025'

Когда я использую строку, exec работает как положено. Что мне нужно сделать, чтобы заставить это работать с целочисленными значениями?

вот утверждение

exec( "CREATE DATABASE $dbName" );

Ответы [ 2 ]

2 голосов
/ 19 марта 2011

Это поразительно плохая идея, но для создания базы данных вам понадобятся обратные галочки:

mysql> create database 123;
ERROR 1064 (42000): 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 '123' at line 1
mysql> create database "123";
ERROR 1064 (42000): 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 '"123"' at line 1
mysql> create database '123';
ERROR 1064 (42000): 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 ''123'' at line 1
mysql> create database `123`;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| 123                |
...

mysql> select @@version;
+-----------+
| @@version |
+-----------+
| 5.0.77    |
+-----------+
1 row in set (0.00 sec)
0 голосов
/ 19 марта 2011

exec( "CREATE DATABASE \'$dbName\'" ); просто одинарная кавычка имени базы данных.

редактирование:

это работает, только если у вас уже есть:

SET sql_mode='ANSI_QUOTES'; 

в противном случае используйте отступившие назад отметки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...