SQL 表列到数组

Posted

技术标签:

【中文标题】SQL 表列到数组【英文标题】:SQL Table column to array 【发布时间】:2014-02-23 19:43:58 【问题描述】:

如何将一列中的值放入数组?在示例表中,我希望将“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);

【问题讨论】:

代码有什么问题? 我不确定你的意思? while($row = mysql_fetch_array($result)) $my_array [$i][$column]=$row; $i++; 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

看起来您的代码应该可以工作,如果您只是在寻找更有效的方法,请查看使用 PDO 搜索数据库并使用 can use

$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

如果您只关注一列,请选择该列而不是 * 如果您关注多于一列。

【讨论】:

以上是关于SQL 表列到数组的主要内容,如果未能解决你的问题,请参考以下文章

SQL:如何找到视图列到表列的映射?

将JSON数组作为SQL表列之一读取

多列,多表列到行 unpivot

PDO 从表中提取一列到一维数组中

T-SQL基于分隔符拆分列并将拆分后的字符串数组输入到多个表列中

使用带有 PDO 的数组更新多个 MySQL 表列