Mysql-插入N'';
这是一个mysql的小问题,但我最近发现了一个我在阅读SO问题时不理解的查询Mysql-插入N'';,mysql,Mysql,这是一个mysql的小问题,但我最近发现了一个我在阅读SO问题时不理解的查询 mysql_query("SET CHARACTER SET utf8"); mysql_query("insert into users (username,pass,fname,lname,phone,city) VALUES (N'$email',N'$pass',N'$fname',N'$lname',N'$phone',N'$city')"); 插入查询是什么意思? 处理UTF8时是否需要这样做 如果我必须
mysql_query("SET CHARACTER SET utf8");
mysql_query("insert into users (username,pass,fname,lname,phone,city) VALUES (N'$email',N'$pass',N'$fname',N'$lname',N'$phone',N'$city')");
插入查询是什么意思?
处理UTF8时是否需要这样做
如果我必须写同样的查询,我会写:
mysql_query("insert into users (username,pass,fname,lname,phone,city) VALUES ('$email','$pass','$fname','$lname','$phone','$city')");
这两者之间有什么区别?是用于Unicode的数据类型。如果您的数据库没有存储多语言数据,那么您可以继续使用Varchar。例如:N'abc(在您的例子中)只是将字符串转换为unicode
默认情况下,SQL server对varchar使用Windows-1252字符代码。它包含拉丁语言(英语、德语、法语等)的大部分字符,但不包含非拉丁语言(波兰语、俄语等)的字符。如上所述,nvarchar用于解决这个问题,因为它是用于包含那些缺少的字符的Unicode的。这是有代价的,存储nvarchar所需的空间是varchar的两倍
将N放在字符串前面可以确保在将字符放入nvarchar列之前将其转换为Unicode。大多数情况下,您可以不使用N,但我不建议您这样做。安全总比后悔好得多。文档中对此进行了解释。它叫Ok谢谢,但是
设置字符集utf8
会改变mysql处理varchar/nvarchar的方式吗?是的。。退房