လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDostatement :: GetCoumnmeta function ကိုအားဖြင့်ဒေတာဘေ့စ်ကော်လံအမည်နှင့်ဒေတာများကိုတိကျစွာအမျိုးအစားမည်သို့ရယူရမည်နည်း။

PDostatement :: GetCoumnmeta function ကိုအားဖြင့်ဒေတာဘေ့စ်ကော်လံအမည်နှင့်ဒေတာများကိုတိကျစွာအမျိုးအစားမည်သို့ရယူရမည်နည်း။

gitbox 2025-07-10
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// ဤကုဒ်၏ဤအပိုင်းသည်ဆောင်းပါး၏အကြောင်းအရာများနှင့်လုံးဝမသက်ဆိုင်ပါ,ခွဲခြာမတိုင်မီအကြောင်းအရာကိုပြသရန်သာအသုံးပြုသည်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဒီဆောင်းပါးကိုဖတ်ရန်လှိုက်လှဲစွာကြိုဆိုပါသည်,ဤဆောင်းပါးသည်အသေးစိတ်ရှင်းပြပါလိမ့်မည် PDOStatement::getColumnMeta လုပ်ဆောင်ချက်များကိုအသုံးပြုခြင်း。"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
 * ဘယ်လိုဖြတ်သန်းရမလဲ PDOStatement::getColumnMeta ဒေတာဘေ့စို့ကော်လံအမည်များနှင့်ဒေတာအမျိုးအစားများကိုတိကျစွာရရန်လုပ်ဆောင်ချက်များကို?
 *
 * အသုံးပြုမှုအတွက် PHP ၏ PDO ဒေတာဘေ့စစစ်ဆင်ရေးတိုးချဲ့သောအခါ,获取查询结果၏元数据非常重要,အထူးသဖြင့်ဒိုင်းနယူးစားပွဲပေါ်မှာဖွဲ့စည်းတည်ဆောက်ပုံကိုထုတ်လုပ်、ဒေတာတင်ပို့သို့မဟုတ်အတည်ပြုသည့်အခါ。
 * PDOStatement::getColumnMeta ဟုတ်ကဲ့ PDO 提供၏တစ်个နည်းလမ်း,用于获取结果集中指定列၏元信息,ကျွန်တော်တို့ကိုကော်လံအမည်များရအောင်ကူညီပါ、ဒေတာအမျိုးအစားနှင့်အခြားသတင်းအချက်အလက်များ。
 *
 * တစ်、နိဒါန်းနိဒါန်း
 * PDOStatement::getColumnMeta(int $column) :
 *   - တေးရေး $column ဟုတ်ကဲ့列၏索引(မှ0စက်နှိုး)。
 *   - 返回值ဟုတ်ကဲ့တစ်个关联数组,包含该列၏元数据,ကော်လံအမည်အဖြစ်(name)、ဒေတာအမျိုးအစား(native_type)、အရှည်(len)、ဟုတ်ကဲ့否允许 NULL(flags)စောင့်。
 *
 * နှစ်、အသုံးပြုမှုဥပမာ
 * အောက်တွင်ဖော်ပြထားသည် MySQL ဥပမာတစ်ခုအနေဖြင့်,演示ဘယ်လိုဖြတ်သန်းရမလဲ PDOStatement::getColumnMeta ကော်လံအမည်ရယူပါနှင့်ဒေတာအမျိုးအစား。
 */</span>

</span><span><span class="hljs-keyword">try</span></span><span> {
    </span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">"mysql:host=localhost;dbname=testdb;charset=utf8mb4"</span></span><span>;
    </span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-string">"root"</span></span><span>;
    </span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">""</span></span><span>;
    </span><span><span class="hljs-variable">$options</span></span><span> = [
        PDO::</span><span><span class="hljs-variable constant_">ATTR_ERRMODE</span></span><span> =&gt; PDO::</span><span><span class="hljs-variable constant_">ERRMODE_EXCEPTION</span></span><span>,
    ];

    </span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-variable">$dsn</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$options</span></span><span>);

    </span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT id, username, email, created_at FROM users LIMIT 1"</span></span><span>;
    </span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$pdo</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);

    </span><span><span class="hljs-variable">$columnCount</span></span><span> = </span><span><span class="hljs-variable">$stmt</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">columnCount</span></span><span>();

    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"စားပွဲတင်ကွင်းဆင်းသတင်းအချက်အလက်:\n"</span></span><span>;
    </span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> &lt; </span><span><span class="hljs-variable">$columnCount</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span>++) {
        </span><span><span class="hljs-variable">$meta</span></span><span> = </span><span><span class="hljs-variable">$stmt</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">getColumnMeta</span></span><span>(</span><span><span class="hljs-variable">$i</span></span><span>);
        </span><span><span class="hljs-comment">// ကော်လံအမည်ရယူပါ</span></span><span>
        </span><span><span class="hljs-variable">$columnName</span></span><span> = </span><span><span class="hljs-variable">$meta</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] ?? </span><span><span class="hljs-string">'အမည်မသိကော်လံအမည်'</span></span><span>;
        </span><span><span class="hljs-comment">// 获取数据库原生ဒေတာအမျိုးအစား</span></span><span>
        </span><span><span class="hljs-variable">$nativeType</span></span><span> = </span><span><span class="hljs-variable">$meta</span></span><span>[</span><span><span class="hljs-string">'native_type'</span></span><span>] ?? </span><span><span class="hljs-string">'အမည်မသိအမျိုးအစား'</span></span><span>;
        </span><span><span class="hljs-comment">// 有些数据库返回၏字段အရှည်信息</span></span><span>
        </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-variable">$meta</span></span><span>[</span><span><span class="hljs-string">'len'</span></span><span>] ?? </span><span><span class="hljs-string">'未知အရှည်'</span></span><span>;

        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ကော်လံအညွှန်းကိန်း <span class="hljs-subst">{$i}</span></span></span><span>: နံမယ် = </span><span><span class="hljs-subst">{$columnName}</span></span><span>, ပုံနှိပ်စာ = </span><span><span class="hljs-subst">{$nativeType}</span></span><span>, အရှည် = </span><span><span class="hljs-subst">{$length}</span></span><span>\n";
    }

} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဒေတာဘေ့စ်အမှား: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}

<span class="hljs-comment">/*
 * သုံး、မှတ်သားရန်အရာ
 * 1. 不同数据库驱动返回၏元数据字段可能有所不同,အမှန်တကယ်အခြေအနေအရသိရသည်ကိုင်တွယ်ခံရဖို့လိုအပ်ပါတယ်。
 * 2. getColumnMeta 仅对已经执行၏查询有效,နှင့်အချို့သောယာဉ်မောင်းများသည်ဤ function ကိုအပြည့်အဝမထောက်ခံပါ。
 * 3. native_type ဟုတ်ကဲ့数据库驱动返回၏原生ပုံနှိပ်စာ,နှင့် PHP ပုံနှိပ်စာ不完全对应,သင်ပြောင်းလဲရန်လိုအပ်ပါကသင်ကိုယ်တိုင်ကိုမြေပုံပေးပါ。
 *
 * လေး、အကျဉ်းချုပ်
 * သွား PDOStatement::getColumnMeta,可以方便地获取查询结果၏列名နှင့်ဒေတာအမျိုးအစား,增强程序၏动态处理能力。
 * ပေါင်းစပ်ထားသော columnCount နည်းလမ်း,အားလုံးလယ်ပြင်သတင်းအချက်အလက်ဖြတ်သန်းနိုင်ပါတယ်,实现更灵活၏数据库操作。
 */</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>
  • သက်ဆိုင်သောတက်(ဂ်)များ:

    PDOStatement