SQL表列到数组

时间:2014-02-23 19:43:59

标签: php sql arrays

如何将一列中的值添加到数组中?在示例表中,我希望“NAME”列中的所有名称都为“my_array”。

Ex. (my_table)
|ID|NAME   |
------------
|1 |my_name|
------------
|2 |my_name|
--------------------------------------------------

$con=mysqli_connect("localhost","root","","my_db");
if (mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM my_table");

$my_array = array();
$column = 'NAME';

$i=1;    
while($row = mysql_fetch_array($result)){
    $my_array [$i]=$row[$column];
    $i++;
}

mysqli_close($con);

2 个答案:

答案 0 :(得分:0)

首先,不要设置$i = 1,因为数组从0开始,而不是1。 我会使用mysql_fetch_assoc()代替mysql_fetch_array()

$i=0;    
while($row = mysql_fetch_assoc($result)){
    $my_array[$i] = $row[$column];
    $i++;
}

答案 1 :(得分:0)

看起来您的代码应该可行,如果您只是想寻找一种更有效的方法,请查看使用PDO搜索数据库并使用可以使用

$conn = new PDO('mysql:dbname='.$database.';host='.$host, $username, $password);
$stmt = $conn->prepare('SELECT ID FROM my_table'); 
$stmt->execute();    
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$myarray = $stmt->fetchAll();
echo $myarray[0]['ID'].','.$myarray[1]['ID']; //etc

如果您只在一列之后,只需选择一列而不是*,如果您的时间超过一列。