十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
补充2:有两种方式可以把utf8设置到字段级别。
创新互联欢迎咨询:18982081108,为您提供成都网站建设网页设计及定制高端网站建设服务,创新互联网页制作领域十多年,包括建筑动画等多个领域拥有多年的网站维护经验,选择创新互联,为企业保驾护航。
1.工具方式,请使用mysql官方工具mysql query browser,然后在表的edit table中的column details,直接对字段进行设置。
2.命令行方式,ALTER TABLE tablename MODIFY COLUMN columnname varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL;对于每个可能会出现乱码的字段都要设置。
------------
补充:
他对已有的数据无效,只对设置utf8后的数据有效。另外,请楼主注意:utf8要设置到字段级别,而不仅仅是表级别。
------------------------------------
不需要这样处理。对于jsp+mysql的多语言问题,可以用以下解决方案,可以对任意语言都适用。
1.在数据库链接字符串上要形如:jdbc:mysql://localhost:3306/db?useUnicode=truecharacterEncoding=UTF-8(注意要加characterEncoding=UTF-8)
2.在数据库表和相应的字段要的charset要选择utf8(字段也要加)
3.在servlet的java中去参数时要加上:httpServletRequest.setCharacterEncoding("UTF-8");
4.jsp页面要加上字符集:
%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%
这样就可以处理所有语言的乱码问题。
iptables是按先后顺序处理的,
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT 这里ACCEPT之后就直接访问MYSQL数据库去了
-A INPUT -p tcp --destination-port 3306 -m mac --mac-source 04:7D:7B:E7:8B:5B -j DROP这条策略完全没起到作用
把这两条策略顺序改过来试试看
select *
from table ###
where not exists (
select * from table ###
where # = #
and ## ##
)
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,只有用二重循环查询来解决。
给个例子把,比如:表table_a 4条数据
id A B C D
01 ab 1a2 1b2 121
02 ab 2a3 3b3 4a1
03 ac 1a2 1b2 121
04 ac 2a4 3b2 52g
何让A字段重复取条 比
01 ab 1a2 1b2 121
03 ac 1a2 1b2 121
保留相同A值id行
select *
from table_a a
where not exists (
select 1 from table_a b
where b.A = a.A
and b.id a.id
)
SQL注入,越权和CSRF,xss过滤,文件上传,基本上就这些了 哦,还有弱口令,一些敏感配置文件注意下。
以下代码是从zend framework中某个对象摘出来的,自己调试一下吧。因为原始功能允许设置那些标签是允许使用,所以有一部分你应该用不到。自己分析下咯
public function filter($value)
{
$value = (string) $value;
// Strip HTML comments first
while (strpos($value, '!--') !== false) {
$pos = strrpos($value, '!--');
$start = substr($value, 0, $pos);
$value = substr($value, $pos);
// If there is no comment closing tag, strip whole text
if (!preg_match('/--\s*/s', $value)) {
$value = '';
} else {
$value = preg_replace('/(?:!(?:--[\s\S]*?--\s*)?())/s', '', $value);
}
$value = $start . $value;
}
// Initialize accumulator for filtered data
$dataFiltered = '';
// Parse the input data iteratively as regular pre-tag text followed by a
// tag; either may be empty strings
preg_match_all('/([^]*)(?[^]*?)/', (string) $value, $matches);
// Iterate over each set of matches
foreach ($matches[1] as $index = $preTag) {
// If the pre-tag text is non-empty, strip any "" characters from it
if (strlen($preTag)) {
$preTag = str_replace('', '', $preTag);
}
// If a tag exists in this match, then filter the tag
$tag = $matches[2][$index];
if (strlen($tag)) {
$tagFiltered = $this-_filterTag($tag);
} else {
$tagFiltered = '';
}
// Add the filtered pre-tag text and filtered tag to the data buffer
$dataFiltered .= $preTag . $tagFiltered;
}
// Return the filtered data
return $dataFiltered;
}
防止sql注入可以分为过滤输入(对输入的数据进行过滤)和转义输出(对发送