У меня есть способ получить имя столбцов таблицы. Он отлично работает, но теперь я хочу обновиться до нового mysqli? (Я пробовал mysqli_fetch_field, но я не знаю, как подать заявку на это дело, и я не уверен, что это вариант с правами)
Как сделать то же самое с mysqli? :
$sql = "SELECT * from myTable"; $result = mysql_query($sql,$con); $id = mysql_field_name($result, 0); $a = mysql_field_name($result, 1); echo $id; echo $a;
Это способ реализовать эту недостающую функцию:
function mysqli_field_name($result, $field_offset) { $properties = mysqli_fetch_field_direct($result, $field_offset); return is_object($properties) ? $properties->name : null; }
Я не уверен, есть ли лучший способ сделать это, но я проверил, что это работает, чтобы получить только имя столбцов и является новым mysqli:
$result = mysqli_query($con, 'SELECT * FROM myTable'); while ($property = mysqli_fetch_field($result)) { echo $property->name; }
Вы можете заменить функцию mysql_field_name
на mysqli_fetch_field_direct
и использовать ее следующим образом:
$colObj = mysqli_fetch_field_direct($result,$i); $col = $colObj->name; echo "<br/>Coluna: ".$col;
$sql = "SELECT * from myTable"; $res = mysqli_query($con,$sql); $row = mysqli_fetch_assoc($res); $fields = array_keys($row); var_dump($fields);
Это еще один простой способ распечатать имя, таблицу и максимальную длину каждого поля
$sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname"; if ($result=mysqli_query($con,$sql)) { // Get field information for all fields while ($fieldinfo=mysqli_fetch_field($result)) { printf("Name: %s\n",$fieldinfo->name); printf("Table: %s\n",$fieldinfo->table); printf("max. Len: %d\n",$fieldinfo->max_length); } // Free result set mysqli_free_result($result); }