【发布时间】:2022-10-05 00:50:04
【问题描述】:
我正在尝试将整数数据从颤振发送到 mysql,但它没有在数据库中注册。我认为问题在于该变量是整数类型,因为如果我将其设为字符串类型,它会将其注册到数据库中。
int 解析对我不起作用。
edad 是整数数据。
什么是最好的解决方案。 我非常感谢您的帮助 代码颤动/Dart:::
Future PrividerPruebaRegistroCliente(String Contrasena,String correo,String apodo,String apellido, int edad ) async {
try{
var Url= Uri.parse("http://192.168.0.105/PruebaRati/Prueba Php/Modelo_Php/RatiDemo/ProviderPrueba.php");
var response = await http.post(Url,
body:{
'contrasena' :Contrasena,
'correo' :correo,
'apodo' :apodo,
'apellido' :apellido,
'edad' :edad
},
).timeout(const Duration(seconds: 90)) ;
}on TimeoutException catch(e){
print("Tardo mucho la conexion");
}on Error catch(e){
print("Error de Http");
}
}
------
<?php
require("database connection");
if($conex){
echo("conexion correcta");
}else{
echo("conexion incorrecta");
}
$contrasena = mysqli_real_escape_string($conex,$_POST['contrasena']);
$correo = mysqli_real_escape_string($conex,$_POST['correo']);
$apodo = mysqli_real_escape_string($conex,$_POST['apodo']);
$apellido = mysqli_real_escape_string($conex,$_POST['apellido']);
$edad = mysqli_real_escape_string($conex,$_POST['edad']);
$consulta ="INSERT into nametable(contrasenia,correo,apodo,apellido,edad)Values ('$contrasena','$correo','$apodo','$apellido','$edad')";
$resultado = mysqli_query($conex,$consulta);
if($resultado){
echo(" correct query");
}else{
echo("error query");
}
?>
【问题讨论】:
-
在 INSERT 语句值中有
'$edad',这意味着字符串值。删除引号,只需使用$edad。在 PHP 中处理用户输入时始终使用准备好的语句,mysqli_real_escape_string不足以防止 SQL 注入。 -
在提交帖子正文时也值得考虑使用
jsonEncode,例如:body: jsonEncode({'contrasena': ....})。 -
我做到了,但它仍然不起作用