2017-01-16 11 views
1

私はmysqlにデータを挿入するクエリを作成します。symfony3で "INSERT SELECT"を使うにはどうすればいいですか?

$data=$request->request->all(); 
    $odd=$data['form']['odd']; 
    $stake=$data['form']['stake']; 
    $win=$data['form']['win']; 
    $login_user=$data['form']['login_user']; 

    $separator = '\r\n'; 

    $db = $this->getDoctrine()->getManager(); 
    $query = "INSERT INTO zakladyuser (game, type, odd, stake, win, login_user, stat) 
       SELECT GROUP_CONCAT(game SEPARATOR :separator), GROUP_CONCAT(type SEPARATOR :separator), :odd, :stake, :win, :login_user, 0 
       FROM kupon k0"; 
    $stmt = $db->prepare($query); 
    $params = array(
        "separator"=>$separator, 
        "odd"=>$odd, 
        "stake"=>$stake, 
        "win"=>$win, 
        "login_user"=>$login_user 
       ); 
    $stmt->execute($params); 
    $results = $stmt->fetchAll(); 

修正することはできますか?私はこれらのエラーを持っているので:未定義のメソッド教義\ ORM \のEntityManagerへ

コール::準備()

は、クラスの "教義\ ORM \ EntityManagerを" "準備" という名前の未定義のメソッドを呼び出そうとしました。

この方法が間違っている場合、どうすればよいでしょうか?

答えて

1

あなたはprepare()connection内のオブジェクトを呼び出す必要があります。

$db = $this->getDoctrine()->getManager(); 
.. 
$stmt = $db->getConnection()->prepare($query); 
+0

おかげで多くのことを。私はそれを追加し、 '$ results = $ stmt-> fetchAll();'を削除しました。そして、このデータを挿入することができます。 しかし、私はセパレータに問題がありますが、これらは動作しません。 – zupaaa

+0

あなたはようこそ!セパレータの問題とはどういう意味ですか?例えば1列目の行には – manix

+0

があります:1 [改行] 0 [改行]など。それは '1 \ r \ n0 \ r \ n'などのように私を追加しました。 = '\ r \ n'; 'を' $ separator = "\ r \ n"; ':)に変更します。しかし、助けてくれてもう一度感謝 – zupaaa

関連する問題