问题:使用 php 原生 pdo 尝试执行两个 sql 语句插入,但收到以下报错:
error!: 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 'insert into content_table (title) values ('标题') not null' at line 1
代码:
$sql= "alter table cate_table add varchar(255) not null". "insert into content_table (name) values ('标题') not null"; try { $dbh = new pdo($dsn, $user, $pass);; $dbh->exec($sql); } catch (pdoexception $e) { print "error!: " . $e->getmessage() die(); }
原因:
立即学习“PHP免费学习笔记(深入)”;
php pdo 中执行多句 sql 语句时,每句 sql 语句必须以分号 (;) 作为结束符。而原始代码中,两个 sql 语句之间缺少分号。
解决方案:
在原始代码中添加分号即可,如下:
$sql= "ALTER TABLE cate_table ADD varchar(255) NOT NULL;"; "INSERT INTO content_table (name) VALUES ('标题') NOT NULL";