我正在开发一个使用 sqlsrv 驱动程序的 PHP MSSQL 项目。阻止 SQL 注入攻击的最佳方法是什么?我需要类似 mysql_real_escape_string() 的东西,但用于 sqlsrv 驱动程序。
这是问题,我想在表格中显示一列的月份,计数和平均值,但是当我尝试按月分组时,我一直收到错误.
这是代码:
SELECT MONTH(ContractDate) AS Q,
DATENAME(month, ContractDate) AS M,
COUNT(ContractDate) AS C, SUM(ContractPrice) AS S
FROM dashboard
WHERE YEAR(ContractDate) = $year
AND ContractDate IS NOT NULL
AND ContractPrice IS NOT NULL
GROUP BY MONTH(ContractDate)
Run Code Online (Sandbox Code Playgroud)
但这会导致错误:
[Microsoft][SQL Server Native Client 10.0][SQL Server]
Column 'dashboard.ContractDate' is invalid in the select
list because it is not contained in either an aggregate
function or the GROUP BY clause.
Run Code Online (Sandbox Code Playgroud)
但是如果我把它MONTH()从组中移除......它工作得很好..但我需要按月分组,否则我得到同一个月的多个不算一个.
对不起,我做了搜索,并且有很多答案,但就像我说我是菜鸟,他们并没有真正帮助我,因为我不明白为什么会这样.