当我从数据库中获取数据时,我正在使用php中的预准备语句,因为我被告知这是一种安全的工作方式。问题是我无法在javascript中从外部php文件中检索查询返回的数据 当我通过更改post直接在url中发送参数时,我可以看到数据,获取方法:(localhost / prueba_prepared_statements.php?transportista = 1) 但是当我在javascript中使用ajax调用时,我看不到任何东西。
这是我的php文件代码: prueba_prepared_statement.php:
<?php
include "conexion.php";
$input_variable = $_POST['input_variable'];
$sql = oci_parse($conn, "SELECT COD, NAME FROM TABLE WHERE COD = :input_variable");
oci_bind_by_name($sql, ':input_variable', $input_variable);
$resultado = oci_execute($sql);
if ($resultado){
$sql= oci_fetch_array($sql);
echo json_encode($sql);
}
?>
这是我的javascript文件,我发送参数并想从我的php文件中检索数据:
function trae_transportista(){
input_variable = $('#input_variable').val();
$.ajax({
url : "prueba_prepared_statement.php",
type : "POST",
dataType : "json",
data: {"input_variable" : input_variable},
success : function(data){
alert(data.NAME);
}
});
};
如果我没有为我的查询使用预准备语句,javascript中的上述代码就可以了,如下所示:
<?php
include "conexion.php";
$input_variable = $_POST['input_variable'];
$sql= oci_parse($conn,"SELECT COD, NAME FROM TABLE WHERE COD=" . $input_variable);
$resultado = oci_execute($sql);
if ($resultado){
$sql= oci_fetch_array($sql);
echo json_encode($sql);
}
?>