Php mysql\u获取\u行获取列而不是行
我试图使用mysql_fetch_row从数据库中获取单独的行,但是当我回显它时,它将列作为行,例如$row_columns[0]是第1列,$row_columns[1]是第2列,请允许我向您展示我正在使用的代码Php mysql\u获取\u行获取列而不是行,php,mysql,Php,Mysql,我试图使用mysql_fetch_row从数据库中获取单独的行,但是当我回显它时,它将列作为行,例如$row_columns[0]是第1列,$row_columns[1]是第2列,请允许我向您展示我正在使用的代码 mysql_select_db($database_Takeaway, $Takeaway); $query_columns = "SELECT * FROM `rest_site` WHERE linkid = '$rest_id'"; $columns = mysq
mysql_select_db($database_Takeaway, $Takeaway);
$query_columns = "SELECT * FROM `rest_site` WHERE linkid = '$rest_id'";
$columns = mysql_query($query_columns, $Takeaway) or die(mysql_error());
$row_columns = mysql_fetch_row($columns);
并展示它
echo($row_columns[0])
我试过了
打印(行和列)
这就是下面的反馈
数组([0]=>1001[1]=>[2]=>[3]=>0[4]=>[5]=>1837[6]
=>测试标题[7]=>测试文本[8]=>[9]=>[10]=>)
上面是所有1行数据,而我需要它是单独的列,这样我就可以执行以下操作
echo $row_columns[0]['name']
echo $row_columns[0]['postcode']
我在这方面做了很多搜索,但似乎找不到任何有帮助的东西,我检查了php.net以及一般的谷歌搜索,当然还有堆栈溢出,所以非常感谢您在这方面的帮助
我希望我已经把问题说清楚了
谢谢
选择*
没有正确的语句,您最好列出您需要的所有列。让它们明确也有助于我们回答您的问题
另外,请始终将输入转义到查询<代码>mysql\u real\u escape\u string()
作为猜测,我认为您忽略了一个事实,即获取查询结果总是必须逐行获取。你知道你需要一个环吗
另外,如果您想获得列名,请使用
mysql\u fetch\u assoc()
mysql\u fetch\u行
仅为枚举数组
您正在寻找mysql\u fetch\u array
,它会产生一个关联的枚举数组,因此您可以使用字符串文字数组索引
您还应该研究mysqli或PDO,因为从php5.5开始,mysql就被弃用了
链接:您应该使用
mysql\u fetch\u assoc()
获取带有列名的结果
此外,如果不将其放入循环,则始终只会收到查询的第一行。更好的使用方法是:
mysql_select_db($database_Takeaway, $Takeaway);
$query_columns = "SELECT * FROM `rest_site` WHERE linkid = '$rest_id'";
$columns = mysql_query($query_columns, $Takeaway) or die(mysql_error());
while ($row_columns = mysql_fetch_assoc($columns)) {
echo $row_columns["name"];
echo $row_columns["postcode"];
}
这就是它应该做的,它返回查询的下一行。没有一个mysql函数可以一次返回所有行,您必须在一个循环中调用一个mysql_fetch_XXX函数。是的,但我批评“*”几乎总是对性能有害,并且,正如本例所证明的,模糊了实际处理数据的愿景
SELECT*
在查询的初稿中工作正常,但如果未将其更改为显式列,则此查询将自动提取此表中的任何新列。想象一下,一个用户表开始变小,然后为用户头像添加一列,允许每个用户1 MB,而这个查询永远不会处理图像。再见,表演。