2015-05-05 48 views
0

我试图创建一个函数,它将返回一个包含查询结果的所有字段的数组,然后遍历它并回显所有内容。这是我迄今为止所做的。我尝试了一些类似问题的方法,例如Putting a SQL query in a PHP function,但到目前为止,我还没有能够使其工作。PHP函数从MySQL数据库中选择并将结果传递给数组

<?php 

    $ID = $_POST['ID']; 

    function query($ID){ 
    $servername = "x.x.x.x"; 
    $username = "xxxxx"; 
    $password = "xxxxx"; 
    $dbname = "xxxxx"; 

    $conn = mysqli_connect($servername, $username, $password, $dbname); 
     if (mysqli_connect_errno()){ 
       echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
           } 

    $query = "SELECT ID, NAME, POSITION, TELEPHONE_NUMBER, EMAIL FROM GROUP WHERE ID = '$ID'"; 
    $result = mysqli_query($conn, $sql); 

    while($row = mysqli_fetch_array($result)){ 
    $resArr[] = $row; 
    } 
    return $resArr; 
    } 

    $person = query(); 
    foreach($person as $post) { 
    echo $post['ID'] . "<br>"; 
    echo $post['NAME'] . "<br>"; 
    echo $post['POSITION'] . "<br>"; 
    echo $post['TELEPHONE_NUMBER'] . "<br>"; 
    echo $post['EMAIL'] . "<br>"; 
    } 
    ?> 
+1

除了你张开开阔[SQL注入攻击(http://bobby-tables.com)漏洞,究竟什么是错的代码?不起作用不会告诉我们任何事情。如果它有效,你不会在这里。 –

+2

你用一个参数 - 函数查询($ ID)'来定义你的函数,但是你不用参数调用它 - '$ person = query();'。您需要执行'$ person = query($ ID);' – Sean

+0

Marc B - 用户输入仅限于POST从中获取数据的页面上的整数,如果我知道哪里出了问题,我仍然不会在这里可能会修复它。 无论如何,谢谢Sean这样做,并感谢其他人! – John

回答

1

有几个失误已经对您的查询例如$ ID做不能得到翻译成值正常的ID,所以你必须关闭这样的查询,如果ID比

$query = "SELECT ID, NAME, POSITION, TELEPHONE_NUMBER, EMAIL FROM GROUP WHERE ID = ".$ID; 
整数

如果ID是一个varchar或任何非。

$query = "SELECT ID, NAME, POSITION, TELEPHONE_NUMBER, EMAIL FROM GROUP WHERE ID = '".$ID."'"; 

你也通过发布获得id,但你没有将它分配给你调用它的函数。

$person = query(); 

它必须是

 $person = query($ID); 

尝试这些修复和比发表您的结果返回。

问候

相关问题