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 表列到数组的主要内容,如果未能解决你的问题,请参考以下文章