I have two tables. (1) ENQUIRY
, (2) FOLLOW_UP
. I have to store data from FOLLOW_UP
against MAX(VISITOR_ID)
in a view. My view is created successfully and I can view data in phpMyadmin
.
(1) ENQUIRY
TABLE
$enq = " CREATE TABLE IF NOT EXISTS ENQUIRY (
ID BIGINT PRIMARY KEY AUTO_INCREMENT ,
LONGDATE BIGINT,
UNAME VARCHAR(200) ,
ADDRESS VARCHAR(200) ,
STATE VARCHAR(60) ,
ZIP VARCHAR(20) ,
PHONE VARCHAR(100) ,
AGE INTEGER ,
SEX VARCHAR(6) ,
DOB_DATE INTEGER ,
DOB_MONTH INTEGER ,
DOB_YEAR INTEGER ,
MARITAL_STATUS VARCHAR(30),
BLOOD_GROUP VARCHAR(10),
EMAIL VARCHAR(200),
IS_MEMBER VARCHAR(3) DEFAULT 'NO' ,
REF_SOURCE VARCHAR(150) ,
REFERENCE VARCHAR(150),
LAST_FOLLOWUP BIGINT DEFAULT 0,
CREATE_BY VARCHAR(100),
CREATE_ON BIGINT,
SERVER INTEGER DEFAULT 0)";
(2) FOLLOW_UP
TABLE
$enq = " CREATE TABLE IF NOT EXISTS FOLLOW_UP (
ID BIGINT PRIMARY KEY AUTO_INCREMENT ,
VISITOR_ID BIGINT ,
VISITOR_NAME VARCHAR(200) ,
LONGDATE BIGINT ,
FEED_BACK VARCHAR(200) ,
NEXT_CONTACT BIGINT ,
FEED_BACK_SUMMARY VARCHAR(80) ,
FOLLOWUP_BY VARCHAR(80),
SERVER INTEGER DEFAULT 0)";
My view is as follows:
$enq = "CREATE OR REPLACE VIEW F_TOFOLLOW
AS SELECT
FOLLOW_UP.ID,
FOLLOW_UP.LONGDATE,
FOLLOW_UP.VISITOR_ID,
ENQUIRY.UNAME,
FOLLOW_UP.FEED_BACK,
FOLLOW_UP.FEED_BACK_SUMMARY,
FOLLOW_UP.FOLLOWUP_BY,
FOLLOW_UP.NEXT_CONTACT,
ENQUIRY.CREATE_BY,
ENQUIRY.IS_MEMBER
FROM FOLLOW_UP
INNER JOIN ENQUIRY ON FOLLOW_UP.VISITOR_ID = ENQUIRY.ID
WHERE FOLLOW_UP.ID = (SELECT MAX(ID) FROM
FOLLOW_UP F WHERE F.VISITOR_ID = FOLLOW_UP.VISITOR_ID)";
Now I am trying to run query from the view:
$Q = "SELECT COUNT(*) AS TOFOLLOW FROM F_TOFOLLOW";
Any Query I try to execute is very very very very slow. Even most of the time I get:
SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
Some suggests me to update max_allowed_packet
in mysql config but there is no way to do so in a shared hosting.
Similar views are running fine. What is wrong with my code? Is there any way to resolve this issue?