我报告了一个问题,发现发生了什么...... 在这样的ActiveDirectory事件中,它们是UserInputs的几个filds,所以我要验证它们! - 当然我没有...
所以在第一个用户获得了在特定的foldername中使用单引号的好主意后,它崩溃了我的脚本 - 可以轻松注入......
所以我喜欢使用像PHP和其他人一样使用预处理语句进行更新。
现在这是一个Powershell脚本..我喜欢这样做:
services:
twig.extension.text:
class: Twig_Extensions_Extension_Text
tags:
- { name: twig.extension }
这样可以正常工作 - 1次。
我的脚本作为服务运行无穷无尽,并在$MySQL-OBJ.CommandText = "INSERT INTO `table-name` (i1,i2,i3) VALUES (@k1,@k2,@k3)"
$MySQL-OBJ.Parameters.AddWithValue("@k1","value 1")
$MySQL-OBJ.Parameters.AddWithValue("@k2","value 2")
$MySQL-OBJ.Parameters.AddWithValue("@k3","value 3")
$MySQL-OBJ.ExecuteNonQuery()
循环内循环。
关于该参数的Powershell蛤已经设定......
使用“2”参数调用“AddWithValue”的异常:“参数 '@ k1'已被定义。“
如何在不关闭数据库连接的情况下重置此“绑定”? id就像保持连接打开一样,因为脚本更快而没有关闭并在事件被触发时打开连接(10+ /秒)
示例代码 (短期而非测试)
while($true)
答案 0 :(得分:1)
更改逻辑,以便db_prepare()
方法使用参数初始化MySql连接和MySql命令。 Set the parameter values循环pre-declared parameter names。像这样,
function db_prepare(){
# ...
# Add named parameters
$MySQLCommand.Parameters.Add("@val1", <datatype>)
$MySQLCommand.Parameters.Add("@val2", <datatype>)
}
while($true) {
# ...
# Set values for the named parameters
$MySQLCommand.Parameters.SetParameter("@val1", <value>)
$MySQLCommand.Parameters.SetParameter("@val2", <value>)
$MySqlCommand.ExecuteNonQuery()
# ...
}