Php 在自动完成jsonp中传递mysql数据表名称

Php 在自动完成jsonp中传递mysql数据表名称,php,mysql,autocomplete,jsonp,Php,Mysql,Autocomplete,Jsonp,我使用的是jQueryUIAutoComplete,我对jQuery和JSON比较陌生。下面是我的代码。我想知道是否可以在回调url中指定字段名和数据表名,以便php文件稍后获取它。我有许多输入框与不同的名称和ID需要有自动完成。每个输入框与MySQL中的不同列和数据表相关。因此,我实际上想从project_title REGEXP'.$param'中替换SELECT*;类似于从[data table variable]中选择[column variable],其中[column variabl

我使用的是jQueryUIAutoComplete,我对jQuery和JSON比较陌生。下面是我的代码。我想知道是否可以在回调url中指定字段名和数据表名,以便php文件稍后获取它。我有许多输入框与不同的名称和ID需要有自动完成。每个输入框与MySQL中的不同列和数据表相关。因此,我实际上想从project_title REGEXP'.$param'中替换SELECT*;类似于从[data table variable]中选择[column variable],其中[column variable]REGEXP'.$param'

事先非常感谢

阿布

下面是test.php文件

<?php

include('../db.php');
$param = $_GET["term"];

//query the database
$query = "SELECT * FROM projects WHERE project_title REGEXP '.$param'";
$res = connect($query);
//build array of results
for ($x = 0, $numrows = mysql_num_rows($res); $x < $numrows; $x++) {
    $row = mysql_fetch_array($res);

    $friends[$x] = array("name" => $row["project_title"]);
}

//echo JSON to page
$response = $_GET["callback"] . "(" . json_encode($friends) . ")";
echo $response;

?>

没关系。我想出来了。 我用过这样的东西

$.getJSON("bin/test.php?callback=?&table=projects&col=project_title", req, function(data) 
然后使用这个函数获取额外的值

$param = filter_input(INPUT_GET, 'term', FILTER_SANITIZE_STRING);
$param_table = filter_input(INPUT_GET, 'table', FILTER_SANITIZE_STRING);
$param_column = filter_input(INPUT_GET, 'col', FILTER_SANITIZE_STRING);

一英里宽的安全漏洞…谢谢你提醒我安全。我在读一篇文章,其中提到了一个简单的修复方法,将autocomplete=off放入标记中。这有意义吗?我怎样才能使它更安全?谢谢。我还是想知道怎样才能使它更安全。谢谢。这对你一点帮助都没有。反正这个页面是不公开的。它有一个安全的登录系统。我添加了no-cache头和headerContent类型:application/json;字符集=utf-8;我使用更安全的过滤器输入。如果你知道更多的安全方法,即使在那之后,我也很想听到他们。谢谢,你们使用的这些胡说八道和主要问题无关——SQL注入。为了避免这种情况,您必须在脚本中硬编码每个表的每个字段的列表。感谢您指出这一点。作为一个新手,我不知道这一点。
$param = filter_input(INPUT_GET, 'term', FILTER_SANITIZE_STRING);
$param_table = filter_input(INPUT_GET, 'table', FILTER_SANITIZE_STRING);
$param_column = filter_input(INPUT_GET, 'col', FILTER_SANITIZE_STRING);