我有一個存儲訂單的表。
id(自動遞增)oid(不自動遞增),然後是訂單詳細信息。
一些訂單可以有多個條目,這就是爲什麼我有一個ID和一個OID(訂單ID) 因此,如果您訂購3個xwidgets和4Zwidgets他們在相同的OID訂單輸入的遞增表列
去我使用下面的代碼分配接下來的OID數字,我想知道如果這是最好的方法:
$maxquery = mysql_query("SELECT MAX(oid) FROM ordr") or die(mysql_error());
$maxresult = mysql_fetch_array($maxquery);
$maxid = $maxresult['MAX(oid)'];
$oid = $maxid + 1; -- this gives me a new OID for the next entry since i can not auto increment this column
首先,您可以將SQL簡化爲'SELECT MAX(oid)+ 1 AS next_oid FROM ordr'。其次,除非您鎖定或以其他方式保護其生成和後續使用,否則生成新的OID是有風險的。第三,不要這樣做 - 請參閱布倫丹的回答。 – pilcrow
謝謝你......你是對的布倫丹的回答是我所需要的。 –
是否因爲那是一個愚蠢的問題而被拒絕投票? –