PHP vs Phpmyadmin

I have this code that I execute on phpmyadmin, which works 100%

Create Temporary Table Searches  ( id int, dt datetime);
Create Temporary Table Searches1 ( id int, dt datetime, count int);

insert into Searches(id, dt) select a.id, now() from tblSavedSearches a;

insert into Searches1(id, dt, count)
select  
    b.savedSearchesId,
    (select c.dt from tblSavedSearchesDetails c where b.savedSearchesId = c.savedSearchesId order by c.dt desc limit 1) as 'dt', 
    count(b.savedSearchesId) as 'cnt'
from tblSavedSearchesDetails b
group by  b.savedSearchesId;

insert into tblSavedSearchResults(savedSearchId,DtSearched,isEnabled)
select id,now(),0 from Searches where not id in (select savedSearchId from tblSavedSearchResults);

update     tblSavedSearchResults
inner join Searches1 on tblSavedSearchResults.savedSearchId = Searches1.id    
Set        tblSavedSearchResults.DtSearched = Searches1.dt, tblSavedSearchResults.isEnabled = 1;

However, when I put the same code in php as below, it generates an error

$dba = DbConnect::CreateDbaInstance(); 
$query = "";

$query.="Create Temporary Table Searches  ( id int, dt datetime); ";
$query.="Create Temporary Table Searches1 ( id int, dt datetime, count int); ";

$query.="insert into Searches(id, dt) select a.id, now() from tblSavedSearches a; ";

$query.="insert into Searches1(id, dt, count) ";
$query.="select ";  
$query.="    b.savedSearchesId, ";
$query.="    (select c.dt from tblSavedSearchesDetails c where b.savedSearchesId = c.savedSearchesId order by c.dt desc limit 1) as 'dt', ";
$query.="    count(b.savedSearchesId) as 'cnt' ";
$query.="from tblSavedSearchesDetails b ";
$query.="group by  b.savedSearchesId; ";

$query.="insert into tblSavedSearchResults(savedSearchId,DtSearched,isEnabled) ";
$query.="select id,now(),0 from Searches where not id in (select savedSearchId from tblSavedSearchResults); ";

$query.="update     tblSavedSearchResults ";
$query.="inner join Searches1 on tblSavedSearchResults.savedSearchId = Searches1.id ";    
$query.="Set        tblSavedSearchResults.DtSearched = Searches1.dt, tblSavedSearchResults.isEnabled = 1; ";

$dba->DbQuery($query) or die(mysql_error());      

I get the following error

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Create Temporary Table Searches1 ( id int, dt datetime, count int) insert into S' at line 1

Please if someone helped me with this ...

thank

+3
source share
2 answers

If your method $dba->DbQuery($query)actually uses (which, I suppose, is the way you use ), then you cannot execute more than one call request (quote): mysql_querymysql_error

mysql_query()sends a unique request (several requests are not supported) for the current active database on the server associated with the specified link_identifier.


You will have to either:

+4

PHP. $dba->DbQuery() .

+1

Source: https://habr.com/ru/post/1743616/


All Articles