Php 将MySQL列值转换为数组。结果是错误的值
尝试从单个列获取所有值。 毕竟,只是简单地打印所有的值来检查是否一切正常。不幸的是,我打印的所有值都是相同的——“数组”(不带引号) 我是MySQL的新手。这是我的密码:Php 将MySQL列值转换为数组。结果是错误的值,php,mysql,arrays,Php,Mysql,Arrays,尝试从单个列获取所有值。 毕竟,只是简单地打印所有的值来检查是否一切正常。不幸的是,我打印的所有值都是相同的——“数组”(不带引号) 我是MySQL的新手。这是我的密码: $sql_connect = mysql_connect("localhost","db_user_name","db_password") ; if (!$sql_connect) { die("Database connection failed: " . mysql_error()); } mysql_selec
$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\u id
数组
$test = 1 ;
while (each($video_IDs)) {
echo "{$test} - {$video_IDs}<br />" ;
$test++ ;
}
mysql_close($sql_connect);
期待得到任何建议 在不使用循环或递归或访问所述数组的特定元素的情况下,
回送
数组的本机方法是不存在的。您也不正确地使用了每个
函数,因为它会返回一个键/值对作为结果(并且您没有为循环捕获该结果)。您应该这样做:
$test = 1 ;
foreach ($video_IDs as $v) {
echo "{$test} - {$v}<br />";
$test++;
}
如果您只是试图在没有任何特定格式的情况下显示数组,请使用var\u dump
或print\r
还需要注意的是,您正在使用折旧函数(
mysql.*
),您应该使用MySQLi或PDO进行SQL查询。如果$video\u id
是一个数组,则需要使用或循环每个元素。下面的代码将输出您需要的数据
$test = 1 ;
foreach( $video_IDs as $key => $value) {
if( is_array($value) ){
echo "$test $key =>";
print_r($value);
echo "<br/>";
}else{
echo "$test $key => $value <br/>";
}
$test++ ;
}
$test=1;
foreach($video_id作为$key=>$value){
if(是_数组($value)){
echo“$test$key=>”;
打印(价值);
回声“
”;
}否则{
echo“$test$key=>$value
”;
}
$test++;
}
如果要打印数组内容,请使用print\r(数组名称)
查看内容的最佳方式是
echo "<pre>";
print_r(array_name);
echo "</pre>";
echo”“;
打印(数组名称);
回声“;
找到解决方案
感谢您的建议,并指出折旧函数(mysql_173*)。我已经更改了与MySQL DB函数和其他所有函数的连接,现在我得到了正确的结果
$link=mysqli_connect('localhost','username','password','db_name');
if(mysqli\u connect\u errno()){
printf(“连接失败:%s\n”,mysqli_Connect_error());
退出();
}
$query=“从表名称中选择列名称”;
$result=mysqli\u查询($link,$query);
而($video\u id=mysqli\u fetch\u数组($result,mysqli\u ASSOC))
{
$rows[]=$video\u id;
}
foreach($video\u id形式的行)
{
echo$video_id['column_name']。“
”;
}
谢谢大家的评论 如果要打印对象本身,请尝试通过索引访问它,例如
$video\u IDS[index]
。另外,您可以避免两次循环使用该代码。而且,这是旧代码。我们现在不这样做。感谢您的建议,并指出折旧函数(mysql_173)。我已经更改了与MySQL DB函数和其他所有函数的连接,现在我得到了正确的结果。
$test = 1 ;
foreach( $video_IDs as $key => $value) {
if( is_array($value) ){
echo "$test $key =>";
print_r($value);
echo "<br/>";
}else{
echo "$test $key => $value <br/>";
}
$test++ ;
}
echo "<pre>";
print_r(array_name);
echo "</pre>";
$link = mysqli_connect('localhost', 'username', 'password', 'db_name');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT column_name FROM table_name";
$result = mysqli_query($link,$query);
while ($video_IDs = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
$rows[] = $video_IDs ;
}
foreach($rows as $video_IDs)
{
echo $video_IDs['column_name']."<br />";
}