我正在使用这个PHP代码来连接两个查询:
$qry = "Create Table $this->tablename (".
"id_user BIGINT NOT NULL AUTO_INCREMENT ,".
"name VARCHAR( 128 ) NOT NULL ,".
"lastname VARCHAR( 128 ) NOT NULL ,".
"email VARCHAR( 128 ) NOT NULL ,".
"password VARCHAR( 32 ) NOT NULL ,".
"confirmcode VARCHAR(32) ,".
"ident_number VARCHAR( 128 ) NOT NULL ,".
"professional_area VARCHAR( 128 ) NOT NULL ,".
"last_update_cv DATETIME NOT NULL ,".
"last_login DATETIME NOT NULL ,".
"PRIMARY KEY ( id_user )".
");";
$qry = $qry . "CREATE TABLE ". table_cv .
" (id_cv BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
id_user BIGINT NOT NULL,
phone_number VARCHAR(35) NOT NULL,
profile_text VARCHAR(500) NOT NULL);";
任何时候发送查询我都会收到语法错误 在单次执行中执行两个查询的正确方法是什么?
答案 0 :(得分:1)
如果您使用的是PHP 5,则可以使用multi_query
答案 1 :(得分:0)
使用HEREDOC:
$sql = <<<EOL
Create Table {$this->tablename} (
id_user BIGINT NOT NULL AUTO_INCREMENT,
name VARCHAR( 128 ) NOT NULL ,
lastname VARCHAR( 128 ) NOT NULL ,
email VARCHAR( 128 ) NOT NULL ,
password VARCHAR( 32 ) NOT NULL ,
confirmcode VARCHAR(32) ,
ident_number VARCHAR( 128 ) NOT NULL ,
professional_area VARCHAR( 128 ) NOT NULL ,
last_update_cv DATETIME NOT NULL ,
last_login DATETIME NOT NULL ,
PRIMARY KEY ( id_user )
);
EOL;
它们使生成多行字符串变得非常容易。但请注意,MySQL的PHP驱动程序不允许在单个查询调用中发出多个查询作为安全限制(它消除了大量的SQL注入攻击)。
您必须发出两个单独的查询。
答案 2 :(得分:0)