似乎 mysqli_fetch_field 仅在 while 循环中第一次返回列名。下面是我的代码
$LoginDetailsCon=mysqli_connect("100.100.100.100","root","root","db") or die("Failed to connect to DB: " . mysqli_connect_error());
$LoginDetailsQuery="SELECT * FROM ewh WHERE UserName = 'SomeName' AND Date BETWEEN '2015-09-01' AND '2015-09-30'";
$LoginDetailsResult=mysqli_query($LoginDetailsCon,$LoginDetailsQuery);
while ($row=mysqli_fetch_array($LoginDetailsResult,MYSQLI_ASSOC)) {
echo "1st time";
while($field=mysqli_fetch_field($LoginDetailsResult)) {
$fieldname=$field->name;
echo substr($fieldname,0,strlen($fieldname)-4) . "<br>";
}
echo "2nd time";
while($field=mysqli_fetch_field($LoginDetailsResult)) {
$fieldname=$field->name;
echo substr($fieldname,0,strlen($fieldname)-4) . "<br>";
}
}
mysqli_close($LoginDetailsCon);
Run Code Online (Sandbox Code Playgroud)
结果如下
1st timeUser
colname1withoutlast4characters
colname2withoutlast4characters
colname3withoutlast4characters
2nd time1st time2nd time1st time2nd time
Run Code Online (Sandbox Code Playgroud)
我需要在 while 循环中获取列名以仅从特定列中获取结果并将其放入数组中
你不需要 mysqli_fetch_field。这是无用的功能,我不知道为什么有这么多 php 用户试图利用它。
每次获取一行时,您已经将所有字段名称作为结果行数组的键。
$con = mysqli_connect("100.100.100.100","root","root","db"));
$sql = "SELECT * FROM ewh WHERE UserName = 'SomeName' AND Date BETWEEN '2015-09-01' AND '2015-09-30'";
$res = mysqli_query($con, $sql);
while ($row = mysqli_fetch_assoc($res)) {
$fields = array_keys($row);
foreach ($fields as $name) {
// do whatever
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
807 次 |
| 最近记录: |