2017-04-26 116 views
0

构建并发送PHP数组从SQL查询并通过ajax将其发送回我的JS文件。通过Ajax构建并发送PHP数组到JS通过

$id = clear(filter_input(INPUT_POST, 'id')); 
$sql = 'SELECT * FROM `counties` WHERE `id`="'.$id.'"'; 
$query = mysqli_query($con, $sql); 
$array = array(); 
while($result = mysqli_fetch_array($query)) { 
    $id = $result['id']; 
    $name = $result['name']; 
    $array[] = array('id' => $id, 'name' => $name); 
} 

echo json_encode($array); 

这是我的代码。作为回应,我总是只有一个元素。还有很多。我怎么能正确地做到这一点?我浏览整个互联网,我没有发现任何有用的东西... :(

+0

[小博](http://bobby-tables.com/)说:* ** [您的脚本存在SQL注入攻击风险。](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)***了解[已准备好](http://en.wikipedia.org/wiki/Prepared_statement)对[MySQLi]的声明(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)甚至[转义字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)是不安全的! –

+0

它看起来像你只选择一个记录,给你'匹配一个ID。 –

+0

其中id = id。您预计会收到多少条记录 – Akintunde007

回答

0
$id = $_POST['id']; 
$query = mysqli_query($con, "SELECT id,name FROM `counties` WHERE `id`='$id'"); 
$array = mysqli_fetch_all($query,MYSQLI_ASSOC); 
echo json_encode($array); 

这可以简化代码

+0

虽然这段代码可能会回答这个问题,但提供关于为什么和/或代码如何回答这个问题的附加上下文会提高它的长期价值。 –

+0

是你想合并一些其他阵列与是响应否则 –

+0

只有你有MYSQLND驱动程序'mysqli_fetch_all'才可用。 – Barmar