更改SQL语法错误1064中的列修改列查询结果(Alter table modify column query results in SQL Syntax error 1064)
mysql
我收到此错误:
带有消息'SQLSTATE [42000]的异常'PDOException':语法错误或访问冲突:1064 SQL语法中有错误; 检查与MySQL服务器版本对应的手册,以便在'( sfname2 VARCHAR(255)NOT NULL, slname2 VARCHAR(255)NOT NULL''第2行'附近使用正确的语法
当我尝试运行此查询时:
$stmnt = $db->prepare('ALTER TABLE eventfields MODIFY (sfname2 VARCHAR(255) NOT NULL , slname2 VARCHAR(255) NOT NULL , .... customfield1 VARCHAR(255) NOT NULL ,)');为什么?
I get this error:
exception 'PDOException' with message '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 '(sfname2 VARCHAR(255) NOT NULL , slname2 VARCHAR(255) NOT NULL , ' at line 2'
When I try to run this query:
$stmnt = $db->prepare('ALTER TABLE eventfields MODIFY (sfname2 VARCHAR(255) NOT NULL , slname2 VARCHAR(255) NOT NULL , .... customfield1 VARCHAR(255) NOT NULL ,)');Why?
最满意答案
删除列周围的括号,并且每个要更改的列都需要MODIFY COLUMN 。
$stmnt = $db->prepare('ALTER TABLE eventfields MODIFY COLUMN sfname2 VARCHAR(255) NOT NULL , MODIFY COLUMN slname2 VARCHAR(255) NOT NULL , .... MODIFY COLUMN customfield1 VARCHAR(255) NOT NULL ');Get rid of the parenthesis around your columns and you need MODIFY COLUMN for each column being altered.
$stmnt = $db->prepare('ALTER TABLE eventfields MODIFY COLUMN sfname2 VARCHAR(255) NOT NULL , MODIFY COLUMN slname2 VARCHAR(255) NOT NULL , .... MODIFY COLUMN customfield1 VARCHAR(255) NOT NULL ');更多推荐
发布评论