Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mysql创建表查询中设置变量值?JAVA_Java_Mysql - Fatal编程技术网

如何在mysql创建表查询中设置变量值?JAVA

如何在mysql创建表查询中设置变量值?JAVA,java,mysql,Java,Mysql,这里,str是表示用户电子邮件的字符串。我想创建一列用户的电子邮件id,但我收到以下错误: 未闭合字符串文字:指向…+str+ 请提供建议。您不能创建带有特殊字符(如@和)的columnname。在里面 我相信电子邮件ID中有一个@,所以它不会创建一个表 还要确保关键字不用作列名。like是一个关键词 尝试通过替换@和来创建表。还有其他一些角色,比如$ Like是SQL中的保留字,不能直接用作列名 为了获得like作为列名,您需要将其设置为'like'` 希望这一切都会顺利进行 您需要做的是将变

这里,str是表示用户电子邮件的字符串。我想创建一列用户的电子邮件id,但我收到以下错误:

未闭合字符串文字:指向…+str+

请提供建议。

您不能创建带有特殊字符(如@和)的columnname。在里面

我相信电子邮件ID中有一个@,所以它不会创建一个表

还要确保关键字不用作列名。like是一个关键词

尝试通过替换@和来创建表。还有其他一些角色,比如$


Like是SQL中的保留字,不能直接用作列名 为了获得like作为列名,您需要将其设置为'like'`

希望这一切都会顺利进行


您需要做的是将变量像这样封装在sql语句中

“+变量+”

因此,你的声明如下:

String query = "CREATE TABLE user_post_data ("+str+" varchar(255), post_text varchar(255), post_image longblob, post_date date, `like` varchar(255), like_time timestamp, like_date date )";

就像SQL中的关键字一样,尽量避免使用关键字并确保str不是空的。您是否意识到在这个数据库中只有一个名为user\u post\u data的表?表中有一列只对应一个电子邮件地址?我真的不明白将列名作为用户电子邮件的目的。每个用户都将有一个单独的数据库吗?您的字符串str是一个空字符串,请给它一个值。
String str = "example$gmail_com"

String query = "create table newTable("+str+" varchar(255));";
String query = "CREATE TABLE user_post_data ("+str+" varchar(255), post_text varchar(255), post_image longblob, post_date date, `like` varchar(255), like_time timestamp, like_date date )";
"CREATE TABLE user_post_data ('"+str+"' varchar(255), post_text varchar(255), post_image longblob, post_date date, like varchar(255), like_time timestamp, like_date date )";