php - MySQL 列值到数组。结果是错误的值

标签 php mysql arrays

尝试从单个列中获取所有值。 毕竟,只是尝试打印所有值来检查一切是否正常。不幸的是,我打印的所有值都是相同的 - “Array”(不带引号)。

我对 MySQL 很陌生。这是我的代码:

$sql_connect = mysql_connect("localhost","db_user_name","db_password") ;
if (!$sql_connect) {
    die("Database connection failed: " . mysql_error());
}
mysql_select_db("db_name") or die ("no database");

$result = mysql_query("SELECT column_name FROM table_name");
$video_IDs = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $video_IDs[] =  $row[$key];  
}

然后,我打印 $video_IDs 数组

$test = 1 ;
while (each($video_IDs)) {
    echo "{$test} - {$video_IDs}<br />" ;
    $test++ ;
}

mysql_close($sql_connect);

结果我打印了所有 10 个值,因为我的表中有 10 行。但所有值都是“Array”(不带引号)。

我的结果:

1 - Array
2 - Array
3 - Array
4 - Array
5 - Array
6 - Array
7 - Array
8 - Array
9 - Array
10 - Array

期待收到任何建议。

最佳答案

不使用循环或递归或访问数组的特定元素,就没有本地方法可以回显数组。您也没有正确使用 each 函数,因为它返回一个键/值对作为结果(并且您没有捕获循环的结果。)您应该这样做:

$test = 1 ;
foreach ($video_IDs as $v) {
    echo "{$test} - {$v}<br />";
    $test++;
}

如果您必须使用 each,请对原始代码稍作更改,以便每次迭代时键/值对都存储在 $v

$test = 1 ;
while ($v = each($video_IDs)) {
    echo "{$test} - {".$v['value']."}<br />" ;
    $test++ ;
}

如果您只是尝试显示没有任何特定格式的数组,请使用 var_dumpprint_r

还需要注意的是,您正在使用已折旧的函数 (mysql_*),并且您应该使用 MySQLi 或 PDO 进行 SQL 查询。

关于php - MySQL 列值到数组。结果是错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888824/

相关文章:

php - 在 PHP 中将 JSON 数组导出为 CSV

php - Ajax Div 刷新太快

php - 文章的 CSV 表格上传

mysql - 如何从 varchar 类型值中选择最大数量

c# - Switch 语句字符串匹配但不起作用

javascript - 使用 Ramda 根据键名称模式来乘法和转换数组的对象。返回新平面数组中的所有内容

php - 在 XAMPP 中找不到 php.ini 文件

php - 未捕获的异常 'PDOException' 消息为“SQLSTATE[42000] : Syntax error or access violation: 1064

mysql - SQL Workbench 中的数据库设计

php - 如何从由 ","分隔并后跟 - 的字符串形成两个数组?