簡體   English   中英

如何通過存儲在該列中的值訪問列名

[英]How to access column name by the value stored in that column

我有一個表,它的名字是'specialization' 數據庫名稱是'hackathon' 在表里面它有一行和8列“id”“name”“soft_dev”“Data_analytics”“DB_manager”“sys_engineer”“research”.networks_admin“第一行數據是“5,gourav,59.7,72.6,73.87,59.14,43.14,50.74”這些分別是現在的值。我在 $row['Data_analytics'] 意味着我現在可以訪問值 72.6 我想找出存儲它的列的名稱就像名稱是“Data_analytics”。我希望這個值返回我們如何做

<?php
$value = 72.6; // the value you have access to
// Connect to the database
$db = new mysqli("localhost", "root", "", "hackathon");
// Prepare the query
$query = "SELECT COLUMN_NAME FROM information_schema.columns 
WHERE table_name = 'specialization' AND table_schema = 'hackathon' 
AND (column_name LIKE 'soft_dev' OR column_name LIKE 'Data_analytics' OR column_name LIKE 'DB_manager' OR column_name LIKE 'sys_engineer' OR column_name LIKE 'research' OR column_name LIKE 'networks_admin') 
AND EXISTS (SELECT * FROM specialization WHERE Data_analytics = ?)";
$stmt = $db->prepare($query);
$stmt->bind_param("d", $value);
$stmt->execute();
// Retrieve the result
$result = $stmt->get_result();
$row = $result->fetch_assoc();
// Get the column name
$column_name = $row['COLUMN_NAME'];
echo "The value " . $value . " is stored in the column " . $column_name;
$stmt->close();
$db->close();
?>

它給出錯誤說當我打印列名時嘗試訪問 null 變量或 null 值

您沒有檢查結果集是否為空,或者即使它有多行。

一般使用這種模式......

while($row = $result->fetch_assoc())
{
    $column_name = $row['COLUMN_NAME'];
    echo "The value " . $value . " is stored in the column " . $column_name;
}

或者...

if ($result->num_rows === 0) {
    echo 'No results';
} else {
    while ($row = $result->fetch_object()) {
        $column_name = $row['COLUMN_NAME'];
        echo "The value " . $value . " is stored in the column " . $column_name;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM