使用我的PHP文件使用Mysql数据库更新数据时,我遇到了一个奇怪的问题。
这里是我在file.php中的代码:
https://mysite/phpfile/file.php?id=224
我在浏览器中调用它,例如:
$id = 224;
但它不会更新我的数据。如果我直接更改$ id,如:
<?php
$json = '[{"user_id":13,"username":"stack"},{"user_id":14,"username":"over"}]';
//$json = '12';
function isJson($string) {
json_decode($string);
if(json_last_error() == JSON_ERROR_NONE) {
if(substr($string,0,1) == '[' && substr($string,-1) == ']') { return TRUE; }
else if(substr($string,0,1) == '{' && substr($string,-1) == '}') { return TRUE; }
else { return FALSE; }
}
}
echo isJson($json);
?>
它会更改我的数据。
如何解决此问题?
答案 0 :(得分:-1)
你应该替换
$data = json_decode(file_get_contents("php://input"));
$id = mysqli_real_escape_string($con, $data->id);
与
id = mysqli_real_escape_string($con, $_REQUEST['id']);
您正在通过输入流读取原始请求数据,然后您从JSON解码它(虽然您正在读取的流不是JSON格式)然后您转义id(当然不存在)。 您正在寻找的ID已经由PHP放在$ _REQUEST超全局中。不需要其他所有......