8
我將我的一些代碼從舊的mysql擴展轉換爲PHP中的mysqli擴展。此前,有mysql擴展,我用了一些這樣的代碼,以找到一個表的主鍵:如何判斷列是否是使用mysqli的主鍵?
while ($i < mysql_num_fields($result)) {
$meta = mysql_fetch_field($result, $i);
if ($meta->primary_key == 1){
$primary_key = $meta->name;
}
$i++;
}
$meta->primary_key == 1
是非常方便的。
到目前爲止,我已經轉換爲代碼使用的mysqli:
while ($i < $result->field_count) {
$meta = $result->fetch_field;
if ($meta->primary_key == 1){
$primary_key = $meta->name;
}
$i++;
}
當然,從看文檔here我們可以看到,$meta->primary_key
不存在mysqli的。我看到有一個$meta->flags
。這是我最好的猜測,雖然我不確定當我有主鍵時flags
應該是什麼值。
有誰知道我該如何判斷哪一列是使用mysqli的表的主鍵?
謝謝!
編輯 下面是一些工作代碼:
//get primary key
$primary_key = '';
while ($meta = $result->fetch_field()) {
if ($meta->flags & MYSQLI_PRI_KEY_FLAG) {
$primary_key = $meta->name;
}
}
運行「describe'table_name'」查詢? – Waygood 2012-07-11 14:48:10
好點,這將需要與數據庫的單獨交易,這是可行的。我更喜歡使用已經在結果集中獲得的信息。 – 2012-07-11 14:58:11