我只是想知道是否有任何的方式來選擇使用WHERE
子句中的主鍵行,而不必知道密鑰的列的名稱。無論列名是否在主鍵上選擇?
我建議的PHP函數如下:
function getData($table,$key,$asarray=false) {
$sql = mysql_query("select * from `".$table."` where primary='".$key."'");
if(!$asarray) return mysql_fetch_assoc($sql);
$ret = [];
while($row = mysql_fetch_assoc($sql)) $ret[] = $row;
return $ret;
}
的幾個注意事項:
$table
永遠只來自於代碼中的文字串,從來沒有從外部來源。- 對於這個問題的目的,假設
$key
已經正確轉義。 - 我不在乎
mysql
在PHP 5.5過時了,因爲我使用PHP 5.4 - 出於同樣的原因
$ret = []
是定義數組一個完全有效的方式 - 我這麼說是因爲在我的最後一個問題的人告訴我我的代碼因爲這個語法而不工作。
現在,我當前的實際工作代碼有一個關聯數組映射表名稱與其對應的主鍵字段名稱。我只是想知道是否有一種自動的方式來做到這一點,最好不要詢問INFORMATION_SCHEMA
,SHOW CREATE TABLE
或SHOW INDEXES
。
好吧,感謝信息。 –