Mysql
 sql >> база данни >  >> RDS >> Mysql

Simple Insert работи с phpmyadmin, но не и с php

Само за да сте сигурни:когато се опитвате да изпълните тези 4 заявки от PHP, вие извиквате mysql_query четири пъти?

Например:

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 (цитирам, ударението е мое) :

Трябва да „разделите“ вашите заявки -- което вероятно е нещо, което phpMyAdmin прави, без да ви казва.

И както @Alexandre посочи в коментарите :


Ако използвате mysqli_* функции (а не mysql_* ) за достъп до вашата база данни можете да опитате да използвате mysqli_multi_query .

За съжаление има такава функция за mysql_* .

(BTW:mysql_* API е старият -- би било по-добре, особено за нов проект, да се използва mysqli_* )


Редактиране след коментара:

Ако става дума за изпълнение, да, извършване на едно извикване към базата данни, вместо четири последователни PHP <-> MySQL обаждания, може да е по-добре.

В този случай можете да опитате да използвате синтаксиса за вмъкване, който позволява вмъкване на няколко реда наведнъж; вижте 12.2.5. Синтаксис INSERT в ръководството на MySQL (цитирайки) :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неизвестен хост на MySQL сървър

  2. Извадете стойностите на два реда в една и съща колона, като използвате Mysql group by ID

  3. Кое е най-бързо в PHP - MySQL или MySQLi?

  4. Предаване на FieldName като параметър в MySQL Stored Procedure

  5. Laravel 5.4 дава грешен размер на отговора COM_STMT_PREPARE