在SQL语法错误1064中更改表修改列查询结果

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?

1个回答

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 ');
douyan9417
douyan9417 不得不做$ db-> exec(..)而不是准备。
6 年多之前 回复
dshm8998473
dshm8998473 所以现在我得到SQLSTATE [HY000]:一般错误:2030准备好的语句协议中还不支持此命令(65):PDOStatement-> execute()
6 年多之前 回复
dongtui9168
dongtui9168 看看我更新的答案
6 年多之前 回复
doulei2100
doulei2100 好。 是否可以在一个查询中执行NOT NULL DEFAULT'something'或者设置默认值必须在另一个查询中?
6 年多之前 回复
douxunnian0423
douxunnian0423 哦。 我仍然得到一个错误。 现在它的'slname2 VARCHAR(255)NOT NULL,school2 VARCHAR(255)NOT NULL,gr'在第3行'
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐