0
我在一個較長的商店插件中創建了一個函數,它應該爲數據庫中每一行創建一個隨機數,在「憑證代碼「欄。現在我用一個固定的數字替換了for-loop條件,因爲我想確保問題不會發生,因爲for-loop條件。for循環中的DBAL無法正常工作
問題是for循環只對數據庫有影響。
例如:我有這張表's_plugin_tnev'。那張桌子裏面有6排。其中4個在憑證代碼欄內有值「NULL」。
所以據我瞭解我的代碼。它應該通過同一個表循環5次,並且每次更新那些「NULL」值列中的一個,同時在每個循環之後,這些「NULL」值列中的一個應該填充隨機數,因此不再被選擇通過這個for循環更新。
雖然如前所述,這不會發生。 for循環顯然可以工作一次。
這裏是我的代碼片段:
public function generateCode()
{
//Repeat action 5 times
for($i = 0; $i <= 4; $i++)
{
$rand = 0;
//Creates 16 times a number and add it to the var
for ($i = 0; $i<15; $i++)
{
$rand .= mt_rand(0,9);
}
//On Checkoutcomplete add $rand to database table
$addInt = "UPDATE s_plugin_tnev SET vouchercode = $rand
WHERE vouchercode IS NULL
LIMIT 1";
$connect = Shopware()->Db()->query($addInt);
}
}
正如你可以看到我使用DBAL框架,因爲這是Shopware最好的支持方式。
我的想法是這個錯誤有事情做與$連接變量或DBAL是不與數據庫通信速度不夠快。
也許有人對DBAL有更多的經驗,可以幫助我。
由於提前, 最大ķ
可悲的是,這是沒有問題的。但還是謝謝你。非常不好的做法是兩次使用相同的變量字母。 – MLK
那麼,仍然沒有工作?還是你找到了解決方案? – LP154
那麼......我使用了sleep()方法。雖然我真的不喜歡這個解決方案,並希望有更好的解決方案。 – MLK