MYSQL5.7版本sql_mode=only_full_group_by问题

报错信息:

[Err] 1055 – Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

出现以上错误时进放MySQL命令行查看一下sql_mode值:

如结果如下:

则需要重新设置sql_mode, 在 MySQL命令行执行下面的命令:

出错原因:

mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就出现该错误。

Mysql 查看用户列表

通过命令查看Mysql 所有用户列表

输出示例:

 

Mysql导入数据库命令

一般情况下我们可以通过mysqldump 工具导入整个数据库备份文件:

也可以通过下面的命令进行sql文件的导入:

UNIX:

Windows:

Mysql命令行:

如何在PHP防止数据库SQL注入

SQl注入的危害非常的大,下面这个示例就是一个典型的注入点,代码未对用户所提交的数据进行合法性检查。

用户可通过提交类似 value'); DROP TABLE table;-- 这样的代码,运行时将执行下面的非法代码

对数据安全性以及有效性破坏非常的大,在开发过程中一定要对用户提交信息进行合法性检查,针对PDO和MySQLi两种不同的数据库连接方式有如下两种处理办法。 继续阅读“如何在PHP防止数据库SQL注入”

Mysql中批量更改数据

这几天又要采集大量数据,太懒的缘故,我就把以前的旧数据库COPY了一份。
不过发现有几列数据需要更新。
语法:
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
SET col_name1=expr1 [, col_name2=expr2 …]
[WHERE where_definition]
[ORDER BY …]
[LIMIT row_count]
UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。 继续阅读“Mysql中批量更改数据”