尝试从单个列中获取所有值。 毕竟,只是尝试打印所有值来检查一切是否正常。不幸的是,我打印的所有值都是相同的 - “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_dump
或 print_r
还需要注意的是,您正在使用已折旧的函数 (mysql_*
),并且您应该使用 MySQLi 或 PDO 进行 SQL 查询。
关于php - MySQL 列值到数组。结果是错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888824/