mysql select php
下面是一段工作正常的代碼
/* 注入基本資料,A_I自動產生meta_id */$query1 = "INSERT INTO libr_metacode (meta_isbn, meta_cip) VALUES ('$isbn', '$cip')";$result1 = mysqli_query($dbc,$query1) or die('無法寫入基本編碼,錯誤資訊:' . mysqli_error($dbc)); /* 擷取meta_id進行後續寫入 */$query = "SELECT * FROM libr_metacode WHERE meta_isbn='$isbn'";$result = mysqli_query($dbc, $query);$row = mysqli_fetch_array($result);$ida = $row['meta_id'];echo '獲得本書藏書庫系統元編碼' . $ida . '
'; /* 題名 */$query2 = "INSERT INTO libr_title (meta_id, title, subtitle, series) VALUES ('$ida', '$title', '$subtitle', '$series')";$result2 = mysqli_query($dbc,$query2) or die('無法寫入題名資訊,錯誤:' . mysqli_error($dbc));
做的事情是:
1. 以表單獲得的ISBN號(國際標準書號)、CIP號,在meta_code表中插入行 系統元編碼 ISBN號 CIP號
2. 利用唯一的ISBN號,在meta_code表中查詢圖書獲得的系統元編碼
3. 利用系統元編碼在多個表中進行插入
因為ISBN有13位不適合做主鍵(吧?),所以就這樣做了,但是在讀取其他資料的時候幾乎一模一樣的查詢代碼就出錯了。
/* 擷取meta_id進行後續寫入 */$query = "SELECT * FROM '$ui_b' WHERE '$ui_c'='$ui_a'";$result = mysqli_query($dbc, $query);$row = mysqli_fetch_array($result);$ida = $row['meta_id'];
報錯:mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given.
儘管知道$result應該返回的是一個resource id但是在第一段代碼裡fetch_array()明明就可以啊,為什麼第二段代碼裡的fetch_array()一定要邏輯值呢?
還有,求問如何才能“echo”出$result的值?
回複討論(解決方案)
補充:系統元編碼是自動遞增A_I的,$ui_a輸入的是欄位值,$ui_b輸入的是表名,$ui_c輸入的是列名。
若 $ui_b 是表名,$ui_c 是欄位名
則應寫作
$query = "SELECT * FROM $ui_b WHERE $ui_c='$ui_a'";
若 $ui_b 是表名,$ui_c 是欄位名
則應寫作
$query = "SELECT * FROM $ui_b WHERE $ui_c='$ui_a'";
我去……是這樣啊……謝謝版主!