sql >> データベース >  >> RDS >> Mysql

Simple Insertはphpmyadminで機能しますが、phpでは機能しません

    念のために言っておきますが、PHPからこれらの4つのクエリを実行しようとすると、 mysql_queryを呼び出します。 4回?

    例:

    mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,1,1)");
    mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,2,1)");
    mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,3,1)");
    mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,4,1)");
    


    つまり、 mysql_queryを1回呼び出すだけで、一度に複数の個別のクエリを送信することはできません。 (引用、強調鉱山)

    クエリを「分離」する必要があります。これは、おそらくphpMyAdminが通知せずに行うことです。

    そして、@Alexandreが指摘したように コメントで:


    mysqli _ *を使用している場合 関数( mysql _ *ではありません )データベースにアクセスするには、 mysqli_multi_query>

    残念ながら、 mysql _ *にはそのような関数があります 。

    (ところで: mysql _ * APIは古いものです。特に新しいプロジェクトでは、 mysqli _ *を使用する方が適切です。 )


    コメントの後に編集:

    パフォーマンスに関する場合は、はい、4つの連続した PHP <-> MySQL の代わりに、データベースへの1回の呼び出しを実行します 呼び出し、より良いかもしれません。

    この場合、一度に複数の行を挿入できる挿入構文を使用してみることができます。 12.2.5を参照してください。 INSERT構文 MySQLのマニュアル(引用)



    1. 指定されたキーがvb.netの辞書に存在しませんでした

    2. AndroidでAMP(apache mysql php)を実行する

    3. SSIS API:__COMObject をキャストするインターフェイスをどのように知ることができますか?

    4. PHP PDOは、bindValueとbindParamを使用して配列の最後の値のみが挿入されます