J'ai un moyen d'obtenir le nom des colonnes d'une table. Cela fonctionne bien, mais maintenant je veux mettre à jour le nouveau mysqli? (J'ai essayé le mysqli_fetch_field mais je ne sais pas comment l'appliquer à ce cas et je ne sais pas si c'est l'option wright)
Comment faire de même avec 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;
Je ne sais pas s'il existe une meilleure façon de le faire, mais j'ai vérifié que cela fonctionne pour obtenir uniquement le nom des colonnes et qu'il s'agit du nouveau mysqli:
$result = mysqli_query($con, 'SELECT * FROM myTable');
while ($property = mysqli_fetch_field($result)) {
echo $property->name;
}
C'est la façon d'implémenter cette fonction manquante:
function mysqli_field_name($result, $field_offset)
{
$properties = mysqli_fetch_field_direct($result, $field_offset);
return is_object($properties) ? $properties->name : null;
}
Vous pouvez remplacer la fonction mysql_field_name
à mysqli_fetch_field_direct
et utilisez-le comme suit:
$colObj = mysqli_fetch_field_direct($result,$i);
$col = $colObj->name;
echo "<br/>Coluna: ".$col;
Il s'agit d'un autre moyen simple d'imprimer le nom, la table et la longueur maximale de chaque champ
$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);
}
$sql = "SELECT * from myTable";
$res = mysqli_query($con,$sql);
$row = mysqli_fetch_assoc($res);
$fields = array_keys($row);
var_dump($fields);