我对编码很新,我已经了解情况,我需要将JSON转换为SQLi查询,但我无法完成我需要的工作。
我试图找到一种从url获取参数的方法,并且基于它们使用一般函数从我的DataBase中插入INSER,UPDATE,DELETE或SELECT。
JSON INSERT:
{"Username":"MyEmail@email.com","Password":"329670c3265b6ccd392e622733e9772f"}
JSON UPDATE:
{"Username":"MyEmail@email.com","Password":"newpacd392worda12123sdw112asddww"}
从检查URL查询字符串并将其转换为JSON
的函数中检索以上JSON function php_raw_query() {
$raw = filter_input(INPUT_SERVER, 'QUERY_STRING', FILTER_SANITIZE_STRING);
$arr = array();
$pairs = explode('&', $raw);
foreach ($pairs as $i) {
if (!empty($i)) {
list($name, $value) = explode('=', $i, 2);
if(isset($arr[$name])){
if (is_array($arr[$name])){
$arr[$name][] = $value;
}
else {
$arr[$name] = array($arr[$name], $value);
}
}
else {
$arr[$name] = $value;
}
}
}
return $arr;
}
$json = json_encode(php_raw_query());
完成此操作后,我需要根据传递的数据构建变量查询,例如,如果我有USER和PASS,我可以登录,注册,请求传递更改或删除。
考虑到这一点,用户可以执行:
SELECT * FROM 'users' WHERE 'Username'='MyEmail@email.com' AND 'Password'='329670c3265b6ccd392e622733e9772f';
请注意,列名(Username)和Value(MyEmail@email.com)分别取自JSON Key,Value,仅当JSON数组包含多于1个元素时才包含AND语句。
这可以完成吗?
答案 0 :(得分:1)
它应该对你有所帮助
function addSubReddit() {
var textValue = document.getElementById('#myText').value;
....
....
....
}
但是以这种方式准备查询是不安全的。看https://pl.wikipedia.org/wiki/SQL_injection
答案 1 :(得分:0)
@Lukasz,我刚刚使用了一段代码,工作得很好。我已经对raw_query函数应用了最小的更改,但似乎工作正常。
此外,我不理解SQL注入的事情。你介意再说一点吗?
感谢。
网址:context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
Uri.fromFile(newFile.getParentFile()));
`
_module.php?Username=MyEmail@email.com&Password=329670c3265b6ccd392e622733e9772f
`
AJAX:
`
ob_start();
function php_raw_query() {
$raw = filter_input(INPUT_SERVER, 'QUERY_STRING', FILTER_SANITIZE_STRING);
$arr = array();
$pairs = explode('&', $raw);
foreach ($pairs as $i) {
if (!empty($i)) {
list($name, $value) = explode('=', $i, 2);
if (isset($arr[$name])) {
if (is_array($arr[$name])) {
$arr[$name][] = $value;
} else {
$arr[$name] = array($arr[$name], $value);
}
} else {
$arr[$name] = $value;
}
}
}
return json_encode($arr);
}
$object = json_decode(php_raw_query());
function generate($object) {
$query = 'SELECT * FROM table WHERE ';
$paramsArray = [];
foreach ($object as $key => $value) {
$paramsArray[] = "'$key' = '$value'";
}
return $query . implode(' AND ', $paramsArray) . ";";
}
echo generate($object);
ob_end_flush();
}); `
输出div显示:$(document).on('submit', 'form', function (e) {
var information = $(this).serialize();
e.preventDefault();
$.ajax({
url: "_module.php",
data: information,
type: "GET",
dataType: "json",
success: function (data) {
$("#post-wrapper").html(data);
},
error: function () {
console.log('Cannot retrieve data.');
}
});
答案 2 :(得分:0)
首先使用json_decode解码你的json代码并存储在一个变量中,并在sql查询中使用它。