2017-05-21 71 views
0
Exception -> string(69) "SQLSTATE[HY000]: General error: 1193 Unknown system variable 'OPTION'" Exception -> string(202) "SQLSTATE[42000]: Syntax error or 
access violation: 1104 The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if 
the SELECT is okay" Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1104 The SELECT 
would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay' in 
/customers/e/3/b/jkr.no/httpd.www/STS/amob/inc/timer.php:295 Stack trace: #0 
/customers/e/3/b/jkr.no/httpd.www/STS/amob/inc/timer.php(295): unknown() #1 /customers/e/3/b/jkr.no/httpd.www/STS/amob/index.php(542): 
include('/customers/e/3/...') #2 {main} thrown in /customers/e/3/b/jkr.no/httpd.www/STS/amob/inc/timer.php on line 295 

此腳本一直工作正常2年。我在活動表中刪除了超過2000行,可能它太大了?MAX_JOIN_SIZE行; SET SQL_BIG_SELECTS = 1 - 腳本在2年後停止工作

SQL-問題

$hsql = "SELECT h.ID, h.ukeID, h.normal, h.natt, h.FP, h.HP, h.datumID, h.status, h.orderID, 
h.tilleggID, h.yearID, u.ID as userID, u.level as ulevel, 
u.navn as fnavn, u.etternavn, t.navn as tnavn, o.ID as oID, o.navn as onavn, 
o.pH as opH, o.pB as opB, o.pR as opR, o.pS as opS, o.pP as opP, o.pLE as opLE 
FROM timesheet h LEFT JOIN user u ON u.ID = h.userID LEFT JOIN orders o ON 
o.ordernr = h.orderID LEFT JOIN tillegg t ON t.tilleggnr = h.tilleggID AND 
t.orderID = o.ID".$hsql.$sstr.$yearID." ORDER BY userID ASC, yearID DESC, ukeID DESC, datumID DESC"; 

線295

foreach($hstmt as $hrow) { 
+1

你在哪裏添加了'SQL_BIG_SELECTS = 1'? – junkfoodjunkie

+0

第一行 'code' $ bisql =「SET OPTION SQL_BIG_SELECTS = 1」; try { \t $ dbh-> setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION); $ dbh-> setAttribute(PDO :: ATTR_EMULATE_PREPARES,false); \t $ bistmt = $ dbh-> prepare($ bisql); \t $ bistmt-> execute(array()); (例外$ e){ echo'Exception - >'; var_dump($ e-> getMessage()); } 'code' –

+1

我想你在調用生成代碼時需要將它設置爲一個選項。嘗試讀這:http://stackoverflow.com/questions/34853129/how-to-set-sql-big-selects--1-la-ravel-join-statement – junkfoodjunkie

回答

0

交換

SET OPTION SQL_BIG_SELECTS=1 

SET SESSION SQL_BIG_SELECTS=1 

現在,它的工作!