私は、データベース内の "NULL"の値を持つすべての行の乱数を作成することになっている、より長いショップ用プラグインの中に関数を作成しました。バウチャーコード "欄に記載されている。今はforループ条件を固定数で置き換えました。なぜなら、forループ条件のために問題が発生していないことを確認したいからです。forループ内のDBALが正しく動作しない
問題は、forループがデータベースに一度だけ影響することです。
たとえば、私はこのテーブル 's_plugin_tnev'を持っています。その表の中に6行あります。これらのうち4つは、バウチャーコード列の中に値として「NULL」を有する。
これまでのところ私のコードを理解しています。同じテーブルを5回ループし、それらの「NULL」値の列の1つを更新するたびに、それらの「NULL」値の列のいずれか1つが乱数で満たされ、もはや選択されないこのforループによってUPDATEされます。
前述したように、これは起こりませんが。 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);
}
}
あなたは、これがShopwareで最高のサポートの方法ですので、私は、DBALフレームワークを使用して見ることができるように。
私の考えは間違いが$が変数を接続とは何かを持っているか、そのDBALデータベースで十分に速くを通信していないであるということでしょう。
多分、誰かがDBALの経験があり、私を助けてくれるかもしれません。事前に
おかげで、 マックスK
悲しいことに。しかし、まだありがとう。同じ可変文字を2回使用することは非常に悪いことです。 – MLK
それでは、まだ動作していませんか?それともソリューションを見つけましたか? – LP154
まあ...私はsleep()メソッドを使いました。私は本当にこの解決策を嫌い、良いものがあることを願っています。 – MLK