Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql\字段\新mysqli的名称_Php_Mysqli - Fatal编程技术网

Php mysql\字段\新mysqli的名称

Php mysql\字段\新mysqli的名称,php,mysqli,Php,Mysqli,我有一种方法可以获取表中列的名称。它工作正常,但现在我想更新到新的mysqli?(我尝试了mysqli_fetch_字段,但我不知道如何应用于此案例,我不确定是否是wright选项) 如何对mysqli执行同样的操作 $sql = "SELECT * from myTable"; $result = mysql_query($sql,$con); $id = mysql_field_name($result, 0); $a = mysql_field_name($result, 1); ech

我有一种方法可以获取表中列的名称。它工作正常,但现在我想更新到新的mysqli?(我尝试了mysqli_fetch_字段,但我不知道如何应用于此案例,我不确定是否是wright选项)

如何对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;

我不确定是否有更好的方法来实现这一点,但我检查了该方法是否可以仅获取列的名称,并且是新的mysqli:

$result = mysqli_query($con, 'SELECT * FROM myTable');
while ($property = mysqli_fetch_field($result)) {
    echo $property->name;
}

您可以将函数
mysql\u field\u name
替换为
mysqli\u fetch\u field\u direct
,并按如下方式使用它:

$colObj = mysqli_fetch_field_direct($result,$i);                            
$col = $colObj->name;
echo "<br/>Coluna: ".$col;
$colObj=mysqli\u fetch\u field\u direct($result,$i);
$col=$colObj->name;
echo“
Coluna:.$col;
这是实现此缺失功能的方法:

function mysqli_field_name($result, $field_offset)
{
    $properties = mysqli_fetch_field_direct($result, $field_offset);
    return is_object($properties) ? $properties->name : null;
}

这是打印每个字段的名称、表和最大长度的另一种简单方法

$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);
}

如果要使用mysqli,所有函数都需要转换为mysqli。你不能把mysql和mysqli混在一起。mysql_字段_名称已经是一种古老且无法使用的方式。顺便问一下,你为什么需要它们?这是一个问题:如何将所有内容转换为新的mysqli你的目标是什么?您需要字段名做什么?如果您使用
mysqli\u fetch\u assoc
,来获取数据,您将获得数组中的字段名,因此不需要单独查询它们。此外,通常认为最好的做法是在查询中列出所需的字段;ie使用
选择字段名、字段名等,而不是
选择*
。如果您这样做,您将已经知道结果中的字段,因此您根本不需要检查字段列表。我如何才能像我给出的示例那样只选择字段的标题。根据中的弃用通知,这是正确的答案,但原始函数在失败时返回False,而不是null。您不应该放弃三元运算符并返回$properties->name?只需将null更改为false。这应该是正确的答案。它与mysql\u field\u name几乎相同,只是您必须取消引用名称:$id=mysql\u field\u name($result,0)=>$id=mysqli\u fetch\u field\u direct($result,0)
$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);
}