max time out

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

N K

N K

30/07/2014 20:52:26
Quote Anchor link
Ik draai periodiek een script wat vrij veel tijd in beslag neemt. ( ong 7 minuten)
Nu gebruik ik onderstaande code om een time out te voorkomen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
ini_set('max_execution_time', 0);
?>


Ik krijg na veel succesvolle runs nu ineens een melding
Fatal error: Maximum execution time of 30 seconds exceeded in ***** on line 10

Bijzonder want volgens mij heb ik hem op 0 staan..
Hoe kan ik dit script nu op een goede manier draaien?
 
PHP hulp

PHP hulp

28/03/2024 17:20:38
 
- Ariën  -
Beheerder

- Ariën -

30/07/2014 20:57:36
Quote Anchor link
In .htaccess:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
php_value max_execution_time 0
 
N K

N K

30/07/2014 21:00:02
Quote Anchor link
Ok, ik neem aan dat ik een nieuwe moet maken in een submap anders geldt het voor mijn hele site?
 
- SanThe -

- SanThe -

30/07/2014 21:06:40
Quote Anchor link
N K op 30/07/2014 20:52:26:
( ong 7 minuten)


Zit dat dan wel goed in elkaar?

In die tijd installeer je bijna een hele server.
 
N K

N K

30/07/2014 21:12:32
Quote Anchor link
Geen idee, hij schrijft nu 2500 records vanuit een api weg in meerdere tabellen.
Ik voer 127 queries uit op een api. Ik krijg dit niet voor elkaar om in 1 query te doen.
Mede door de beperkingen van de Facebook Graph api.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

30/07/2014 21:44:21
Quote Anchor link
Dan moet je gaan benchmarken, hoeveel tijd nemen die requests (queries) naar de Facebook API in beslag?
Duurt dat het grootste gedeelte van de totaal tijd, dan kan je vrij weinig doen.
Is dat niet zo, dan ligt het probleem in je script.
 
Ivo P

Ivo P

31/07/2014 05:28:41
Quote Anchor link
Lijkt me geen script dat via een browser of wget aangeroepen moet worden

Meer via cli.
Ben je ook meteen van imeout af, want die bestaat dan niet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
/usr/bin/php /path/to/script.php
 
N K

N K

31/07/2014 08:45:26
Quote Anchor link
@Ivo P: mmm, nog nooit gedaan. Ik ga het eens proberen onder Xampp.

Edit:

Ik zie trouwens wel wat interessants : https://developers.facebook.com/docs/graph-api/making-multiple-requests/
..Maar hoe ik dit aan de gang krijg.. ;-)
Gewijzigd op 31/07/2014 08:50:39 door N K
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

31/07/2014 18:55:15
Quote Anchor link
Toch blijft 7 min. te lang.
Ter vergelijking:
Ik heb een csv import waarbij ik een csv ophaal van ruim 56 Mb.
Vanuit de csv moet ik alles bij elkaar ruim 50.000 records in diverse tabellen inserten.
Daarna nog eens de geimporteerde data met de bestaande data synchroniseren.
Dit alles duurt bij elkaar nog geen minuut.
 
N K

N K

31/07/2014 18:57:56
Quote Anchor link
Maar jij bent sql-god ger. :-) ik zal eens vanavond wat code posten
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

31/07/2014 19:16:11
Quote Anchor link
Vooralsnog heb ik weinig gelovigen ;-)
 
N K

N K

31/07/2014 20:18:33
Quote Anchor link
Als jij nu voor mn deur zou staan zou ik iig geen voet tussen de deur zetten. ;-)

Goed..Ik heb wat tests gedaan.
Het hele script duurt 5,5 ,minuut.
Om alle responses binnen te krijgen van de API duurt precies 1 minuut.
Dat betekent dat de queries dus 4,5 minuut duren :-(

Nu mijn prachtige code. ugh..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
<?php
//Haal alle zoektermen t.b.v. api op.

$sql_get_fb_codes = "SELECT * FROM fb_api ORDER BY name";

$result_get_fb_codes = mysqli_query($con,$sql_get_fb_codes);
if ($result_get_fb_codes === false)
{

    echo showSQLError($sql_get_fb_codes,mysqli_error($con),'Fout met database.');
}


while( $row = mysqli_fetch_assoc($result_get_fb_codes) ){
    $graph_url = '****************';
    $data = file_get_contents($graph_url);
    $array =(json_decode($data,true));
    
    foreach ($array as $venue)
    {

        foreach ($venue as $event)
        {

            //Check op gevulde velden
            if(!empty($event["pic_cover"]['source'])
                && (!
empty($event["location"]))
                && (!
empty($event["venue"]["id"]))
                && (!
empty($event["venue"]["latitude"]))
                && (!
empty($event["venue"]["longitude"]))
                && (!
empty($event["venue"]["city"]))
                && (!
empty($event["venue"]["street"]))
                && (!
empty($event["venue"]["zip"]))
                && (!
empty($event["pic_cover"]['cover_id']))
                && (!
empty($event["eid"]))
                && (!
empty($event["name"]))
                && (!
empty($event["description"]))
                && (!
empty($event["start_time"]))
                )
            {

    
                //check of venue_id al bestaat
                    
                $sql_check_venueid = 'SELECT venue_id FROM venue where fb_venue_id = "'.mysqli_real_escape_string($con, $event["venue"]["id"]).'"';
                $result_check_venueid = mysqli_query($con,$sql_check_venueid);
                if ($result_check_venueid === false){
                    echo showSQLError($sql_check_venueid,mysqli_error($con),'Fout met database.');
                }

                $num_rows = mysqli_num_rows($result_check_venueid);
                if($num_rows == 0){
          
                    //Insert venue in database als venue niet bestaat
                    $sql_insert_venue = '
                        INSERT INTO
                            venue
                            (
                            user_id,
                            name,
                            fb_venue_id,
                            lat,
                            lon,
                            city,
                            street,
                            zipcode,
                            create_date,
                            change_date
                            )
                            VALUES
                            (   "'
.mysqli_real_escape_string($con, 1).'",
                                "'
.mysqli_real_escape_string($con, $event["location"]).'",
                                "'
.mysqli_real_escape_string($con, $event["venue"]["id"]).'",
                                "'
.mysqli_real_escape_string($con, $event["venue"]["latitude"]).'",
                                "'
.mysqli_real_escape_string($con, $event["venue"]["longitude"]).'",
                                "'
.mysqli_real_escape_string($con, $city).'",
                                "'
.mysqli_real_escape_string($con, $event["venue"]["street"]).'",
                                "'
.mysqli_real_escape_string($con, $event["venue"]["zip"]).'",
                                "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'",
                                "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'")
                    '
;
    
                    $result = mysqli_query($con,$sql_insert_venue);
                    if ($result === false){
                        echo showSQLError($sql_insert_venue,mysqli_error($con),'Fout met database.');
                    }
      
                                
                    //sla venue_id op in mysql variabele voor in query insert event als venue nog niet bestaat.
                    //Anders pak de bestaande venue_id

                                        
                    $sql_get_last_venueid = 'SELECT MAX(venue_id) FROM venue INTO @venue_id';
                    $venue_id = '@venue_id';
                    $result = mysqli_query($con,$sql_get_last_venueid);
                    if ($result === false){
                        echo showSQLError($sql_get_last_venueid,mysqli_error($con),'Fout met database.');
                    }  
                }

                else{
                    $row = $result_check_venueid->fetch_assoc();
                    $venue_id = $row['venue_id'];
                                
                    //Update venue in database als venue wel bestaat
                                
                    $sql_update_venue = "
                                UPDATE
                                    venue
                                SET
                                    user_id = '"
.mysqli_real_escape_string($con, 1)."',
                                    name = '"
.mysqli_real_escape_string($con, $event["location"])."',
                                    fb_venue_id = '"
.mysqli_real_escape_string($con, $event["venue"]["id"])."',
                                    lat = '"
.mysqli_real_escape_string($con, $event["venue"]["latitude"])."',
                                    lon = '"
.mysqli_real_escape_string($con, $event["venue"]["longitude"])."',
                                    city = '"
.mysqli_real_escape_string($con, $city)."',
                                    street = '"
.mysqli_real_escape_string($con, $event["venue"]["street"])."',
                                    zipcode = '"
.mysqli_real_escape_string($con, $event["venue"]["zip"])."',
                                    change_date = '"
.mysqli_real_escape_string($con, date('Y-m-d H:i:s'))."'
                                WHERE
                                    venue_id = '$venue_id'
                                "
;
                
                    $result = mysqli_query($con,$sql_update_venue);
                    if ($result === false){
                        echo showSQLError($sql_update_venue, mysqli_error($con),'Fout met database.');
                    }
                }

                            
                //check of image_id al bestaat
                    
                $sql_check_imageid = 'SELECT image_id FROM images where fb_image_id = "'.mysqli_real_escape_string($con, $event["pic_cover"]['cover_id']).'"';
                $result_check_imageid = mysqli_query($con,$sql_check_imageid);
                if ($result_check_imageid === false){
                    echo showSQLError($sql_check_imageid,mysqli_error($con),'Fout met database.');
                }

                $num_rows = mysqli_num_rows($result_check_imageid);
                    
                if($num_rows == 0){
                    
                    //Insert image in database als image niet bestaat.
                  
                    $sql_insert__image = '
                                INSERT INTO
                                    images
                                    (
                                        user_id,
                                        image_url,
                                        image_name,
                                        fb_image_id,
                                        create_date,
                                        change_date
                                    )
                                VALUES
                                    (   "'
.mysqli_real_escape_string($con, 1).'",
                                        "'
.mysqli_real_escape_string($con, $event["pic_cover"]['source']).'",
                                        "'
.mysqli_real_escape_string($con, $event["pic_cover"]['cover_id']).'",
                                        "'
.mysqli_real_escape_string($con, $event["pic_cover"]['cover_id']).'",
                                        "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'",
                                        "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'")
                                '
;
                                $result = mysqli_query($con,$sql_insert__image);
    
                                if ($result === false){
                                    echo showSQLError($sql_insert__image,mysqli_error($con),'Fout met database.');
                                    }

                          
                    //sla image_id op in mysql variabele voor in query insert event
                    
                    $sql_get_last_imageid = 'SELECT MAX(image_id) FROM images INTO @image_id';
                    $image_id = '@image_id';
                    $result = mysqli_query($con,$sql_get_last_imageid);
                    if ($result === false){
                        echo showSQLError($sql_get_last_imageid,mysqli_error($con),'Fout met database.');
                    }  
                }

                else{
                    $row = $result_check_imageid->fetch_assoc();
                    $image_id = $row['image_id'];
                    
                    //Update image in database als image wel bestaat
                    
                    $sql_update_image = "
                                UPDATE
                                    images
                                SET
                                    user_id = '"
.mysqli_real_escape_string($con, 1)."',
                                    image_url = '"
.mysqli_real_escape_string($con, $event["pic_cover"]['source'])."',
                                    image_name = '"
.mysqli_real_escape_string($con, $event["pic_cover"]['cover_id'])."',
                                    fb_image_id = '"
.mysqli_real_escape_string($con, $event["pic_cover"]['cover_id'])."',
                                    change_date = '"
.mysqli_real_escape_string($con, date('Y-m-d H:i:s'))."'
                                WHERE
                                    image_id = '"
.$image_id."'
                                "
;
                
                    $result = mysqli_query($con,$sql_update_venue);
                    if ($result === false){
                        echo showSQLError($sql_update_venue, mysqli_error($con),'Fout met database.');
                    }
                }

                            
                // format startdate
                $timestamp = strtotime($event["start_time"]);
                $start_date = date('Y-m-d', $timestamp);
                $start_time =  date('H:i:s', $timestamp);
                
                //check of event_id al bestaat
                    
                $sql_check_eventid = 'SELECT event_id FROM event where fb_event_id = "'.mysqli_real_escape_string($con, $event["eid"]).'"';
                $result_check_eventid = mysqli_query($con,$sql_check_eventid);
                if ($result_check_eventid === false){
                    echo showSQLError($sql_check_eventid,mysqli_error($con),'Fout met database.');
                }

                $num_rows = mysqli_num_rows($result_check_eventid);
                    
                if($num_rows == 0){
        
                    //Insert event in database als event niet bestaat
                                
                    $sql_insert__event = '
                                    INSERT INTO
                                        event
                                            (
                                            fb_event_id,
                                            venue_id,
                                            user_id,
                                            image_id,
                                            title,
                                            description,
                                            startdate,
                                            starttime,
                                            create_date,
                                            change_date,
                                            published,
                                            event_status  
                                            )
                                    VALUES
                                            (
                                            "'
.mysqli_real_escape_string($con, $event["eid"]).'",
                                            '
.$venue_id.',
                                            "'
.mysqli_real_escape_string($con, 1).'",
                                            '
.$image_id.',
                                            "'
.mysqli_real_escape_string($con, $event["name"]).'",
                                            "'
.mysqli_real_escape_string($con, $event["description"]).'",
                                            "'
.mysqli_real_escape_string($con, $start_date).'",
                                            "'
.mysqli_real_escape_string($con, $start_time).'",
                                            "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'",
                                            "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'",
                                            "'
.mysqli_real_escape_string($con, 1).'",
                                            "'
.mysqli_real_escape_string($con, 'n').'")';
                                            
                    $result = mysqli_query($con,$sql_insert__event);
                    $affected_insert[] = mysqli_affected_rows($con);
                    if ($result === false){
                        echo showSQLError($sql_insert__event,mysqli_error($con),'Fout met database.');
                    }                              
                }

                else{
                    $row = $result_check_eventid->fetch_assoc();
                    $event_id = $row['event_id'];
                    
                    //Update event in database als event wel bestaat
                    
                    $sql_update_event = "
                                UPDATE
                                    event
                                SET
                                    fb_event_id = '"
.mysqli_real_escape_string($con, $event["eid"])."',
                                    venue_id = '.$venue_id.',
                                    user_id = '"
.mysqli_real_escape_string($con, 1)."',
                                    image_id = '.$image_id.',
                                    title = '"
.mysqli_real_escape_string($con, $event["name"])."',
                                    description = '"
.mysqli_real_escape_string($con, $event["description"])."',
                                    ticket_url = '"
.mysqli_real_escape_string($con, $event["ticket_uri"])."',
                                    startdate = '"
.mysqli_real_escape_string($con, $start_date)."',
                                    starttime = '"
.mysqli_real_escape_string($con, $start_time)."',
                                    change_date = '"
.mysqli_real_escape_string($con, date('Y-m-d H:i:s'))."',
                                    published = '"
.mysqli_real_escape_string($con, 1)."',
                                    event_status = '"
.mysqli_real_escape_string($con, 'u')."'
                                WHERE
                                    event_id = '$event_id'
                                "
;
                
                    $result = mysqli_query($con,$sql_update_event);
                    $affected_update[] = mysqli_affected_rows($con);
    
                    if ($result === false){
                        echo showSQLError($sql_update_event, mysqli_error($con),'Fout met database.');
                    }  
                }
            }
        }
        
    }

    echo '<tr><td>'.$name.'</td><td>'.count($affected_insert).'</td><td>'.count($affected_update).'</td></tr>';
    unset($affected_insert);
    unset($affected_update);
}

?>


Iets zegt me dat dit makkelijker kan.
 
Erwin H

Erwin H

31/07/2014 20:45:13
Quote Anchor link
In dit soort gevallen zou ik als eerste kijken naar een INSERT INTO ... ON DUPLICATE KEY UPDATE statement. Heb je wel een unieke index nodig op fb_event_id en fb_venue_id, maar dan kan je je insert en update statement in 1 query uitvoeren. Indien het id nog niet bestaat wordt die aangemaakt, als het wel bestaat geupdate.

Vervolgens kan je meerdere records tegelijk invoeren (kort voorbeeld voor de venues):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
INSERT INTO venue(fb_venue_id, user_id, ....)
VALUES(1,1,...), (2,1,...), (3,1,...)
ON DUPLICATE KEY UPDATE
  user_id = VALUES(user_id), ....

Zo heb je 1 query nodig om alle venues in te voeren of te updaten, waar jij er tig gebruikt (niet alleen de INSERT en UPDATE, ook nog een SELECT voor elk event).

Toevoeging op 31/07/2014 20:53:00:

Overigens vraag ik me ook nog af waarom je nog een eigen venue_id hebt, terwijl het fb_venue_id al uniek is (naar ik aanneem).
Gewijzigd op 31/07/2014 20:46:12 door Erwin H
 
N K

N K

31/07/2014 21:37:48
Quote Anchor link
Hee Erwin, bedankt voor je antwoord. Hier ga ik eens naar kijken.
De facebook venues worden bij mijn eigen (handmatig toegevoegde) venues toegevoegd in dezelfde tabel. De autoincrement (venue_id) in deze tabel is de primary key.
De venue_id wil ik ook in mijn events tabel hebben dus ik kom denk ik toch niet onder de SELECT MAX query uit.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

31/07/2014 21:44:42
Quote Anchor link
Het probleem van een upsert query is wel als je het id in het vervolg nog nodig hebt niet het juiste id terugkrijgt met LAST_INSERT_ID (dat is het id wat toegekend zou worden als het record niet bestond).
Een bulk insert gaat sowieso niet als je achteraf nog wat wilt doen met de LAST_INSERT_ID

Wat gebeurt er als je een DML (insert/update/delete) query uitvoert:
- er wordt gekeken syntax juist is of de kolom- en/of tabelnamen juist zijn.
- er wordt een foreign key check gedaan (InnoDB)
- de tabel wordt gewijzigd
- de indexen worden opnieuw opgebouwd.

FK checks kan je voorkomen door simpelweg geen FK's te gebruiken.

Het herindexeren kan je voorkomen door transacties te gebruiken of door de tabellen te locken.
 
Erwin H

Erwin H

31/07/2014 22:44:33
Quote Anchor link
Ger van Steenderen op 31/07/2014 21:44:42:
Het probleem van een upsert query is wel als je het id in het vervolg nog nodig hebt niet het juiste id terugkrijgt met LAST_INSERT_ID (dat is het id wat toegekend zou worden als het record niet bestond).
Een bulk insert gaat sowieso niet als je achteraf nog wat wilt doen met de LAST_INSERT_ID

Klopt, kan ook niet bij een multi insert. Echter, in mijn ogen is het nog altijd handiger om tig inserts in 1 query te doen, dan voor elk record twee queries uit te voeren (eerst een SELECT en dan een INSERT of UPDATE).

Daarnaast is er in dit geval al een unieke key (de fb id), die je al hebt voor je een insert doet en die je dus ook helemaal niet op hoeft te vragen en dat je geen LAST_INSERT_ID kunt gebruiken kan in dit geval een non-argument zijn. Dat de TS het niet wil gebruiken is een ander verhaal, ik denk dat voornamelijk met niet de optimale methode kennen te maken heeft. Als je in dit geval wel de fb id gebruikt kan je zonder verdere nadelen een multi insert/update doen.



Toevoeging op 31/07/2014 23:13:56:

P.S. ik wil dat laatste nog even iets beter uitleggen, want nu kan het verkeerd opgevat worden. Wat ik zou voorstellen is buiten de blijkbaar nodige auto increment key, de fb id ook als unieke index gebruiken. Die kan NULL blijven voor de eigen events, maar gevuld voor de fb events. Daardoor kan je het gebruiken voor de insert vs update. Je kan het ook gebruiken om bij volgende queries, waarin het id nodig is, via joins op de fb id het auto increment id op te halen. Dan heb je dus op geen enkel moment de LAST_INSERT_ID functionaliteit nodig en dus kan je het in bulk doen.
Gewijzigd op 31/07/2014 22:45:46 door Erwin H
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

01/08/2014 13:37:30
Quote Anchor link
Ligt er een beetje aan wat de vervolg query is.
Als dat ook een (bulk)insert is valt er weinig te joinen, en moet je telkens een subquery gaan uitvoeren om de bijbehorende id op te halen.
Beetje afhankelijk van het aantal queries wat je uitspaart en het aantal subqueries wat je daardoor moet uitvoeren.
 
Erwin H

Erwin H

01/08/2014 14:07:12
Quote Anchor link
In dat geval heb je altijd nog de mogelijkheid om na je bulk insert, met 1 select alle increment ids op te halen. Alle data die hij wil inserten staat toch al in het geheugen, dus dat increment id kan je simpel bij die data voegen. Kan je daarna weer alles in 1 grote insert/update doen.

Al met al zie ik zo de mogelijkheid om tig plus tig queries te vervangen door 3 queries (insert/update, select en nog een insert/update).
 
N K

N K

02/08/2014 02:49:43
Quote Anchor link
mmm ja..Bedoelen jullie zoiets?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?php
//Insert venue in database
                
                $sql_insert_venue = '
                        INSERT INTO
                            venue
                            (
                            user_id,
                            name,
                            fb_venue_id,
                            lat,
                            lon,
                            city,
                            street,
                            zipcode,
                            create_date,
                            change_date
                            )
                            VALUES
                            (   "'
.mysqli_real_escape_string($con, 1).'",
                                "'
.mysqli_real_escape_string($con, $event["location"]).'",
                                "'
.mysqli_real_escape_string($con, $fb_venue_id ).'",
                                "'
.mysqli_real_escape_string($con, $latitude).'",
                                "'
.mysqli_real_escape_string($con, $longitude).'",
                                "'
.mysqli_real_escape_string($con, $event["venue"]["city"]).'",
                                "'
.mysqli_real_escape_string($con, $event["venue"]["street"]).'",
                                "'
.mysqli_real_escape_string($con, $zip).'",
                                "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'",
                                "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'"
                            )
                        ON DUPLICATE KEY UPDATE
                                    user_id = "'
.mysqli_real_escape_string($con, 1).'",
                                    name = "'
.mysqli_real_escape_string($con, $event["location"]).'",
                                    fb_venue_id = "'
.mysqli_real_escape_string($con, $fb_venue_id ).'",
                                    lat = "'
.mysqli_real_escape_string($con, $latitude).'",
                                    lon = "'
.mysqli_real_escape_string($con, $longitude).'",
                                    city = "'
.mysqli_real_escape_string($con, $event["venue"]["city"]).'",
                                    street = "'
.mysqli_real_escape_string($con, $event["venue"]["street"]).'",
                                    zipcode = "'
.mysqli_real_escape_string($con, $zip).'",
                                    change_date = "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'"
                                    '
;

                    $result = mysqli_query($con,$sql_insert_venue);
                    if ($result === false){
                        echo showSQLError($sql_insert_venue,mysqli_error($con),'Fout met database.');
                    }
      
                                

                    //Insert image in database
                    
                               $sql_insert_image = '
                        INSERT INTO
                                    images
                                    (
                                        user_id,
                                        image_url,
                                        image_name,
                                        fb_image_id,
                                        create_date,
                                        change_date
                                    )
                                VALUES
                                    (   "'
.mysqli_real_escape_string($con, 1).'",
                                        "'
.mysqli_real_escape_string($con, $event["pic_cover"]['source']).'",
                                        "'
.mysqli_real_escape_string($con, $fb_image_id).'",
                                        "'
.mysqli_real_escape_string($con, $fb_image_id).'",
                                        "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'",
                                        "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'")
                        ON DUPLICATE KEY UPDATE
                                    user_id = "'
.mysqli_real_escape_string($con, 1).'",
                                    image_url = "'
.mysqli_real_escape_string($con, $event["pic_cover"]['source']).'",
                                    image_name = "'
.mysqli_real_escape_string($con, $fb_image_id).'",
                                    fb_image_id = "'
.mysqli_real_escape_string($con, $fb_image_id).'",
                                    change_date = "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'"
                                    '
;
 
                    $result = mysqli_query($con,$sql_insert_image);

                    if ($result === false){
                        echo showSQLError($sql_insert_image,mysqli_error($con),'Fout met database.');
                    }

                  
                            
                // format startdate
                $timestamp = strtotime($event["start_time"]);
                $start_date = date('Y-m-d', $timestamp);
                $start_time =  date('H:i:s', $timestamp);
                

                //Insert event in database

                $sql_insert_event = '
                        INSERT INTO
                                    event
                                        (
                                            fb_event_id,
                                            user_id,
                                            title,
                                            description,
                                            ticket_url,
                                            startdate,
                                            starttime,
                                            create_date,
                                            change_date,
                                            published,
                                            event_status  
                                        )
                                    VALUES
                                            (
                                            "'
.mysqli_real_escape_string($con, $eid).'",
                                            "'
.mysqli_real_escape_string($con, 1).'",
                                            "'
.mysqli_real_escape_string($con, $event["name"]).'",
                                            "'
.mysqli_real_escape_string($con, $event["description"]).'",
                                            "'
.mysqli_real_escape_string($con, $event["ticket_uri"]).'",
                                            "'
.mysqli_real_escape_string($con, $start_date).'",
                                            "'
.mysqli_real_escape_string($con, $start_time).'",
                                            "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'",
                                            "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'",
                                            "'
.mysqli_real_escape_string($con, 1).'",
                                            "'
.mysqli_real_escape_string($con, 'n').'")
                        ON DUPLICATE KEY UPDATE
                                    fb_event_id = "'
.mysqli_real_escape_string($con, $eid).'",
                                    user_id = "'
.mysqli_real_escape_string($con, 1).'",
                                    title = "'
.mysqli_real_escape_string($con, $event["name"]).'",
                                    description = "'
.mysqli_real_escape_string($con, $event["description"]).'",
                                    ticket_url = "'
.mysqli_real_escape_string($con, $event["ticket_uri"]).'",
                                    startdate = "'
.mysqli_real_escape_string($con, $start_date).'",
                                    starttime = "'
.mysqli_real_escape_string($con, $start_time).'",
                                    change_date = "'
.mysqli_real_escape_string($con, date('Y-m-d H:i:s')).'",
                                    published = "'
.mysqli_real_escape_string($con, 1).'",
                                    event_status = "'
.mysqli_real_escape_string($con, 'u').'"
                                    '
;            
                
                                            
                    $result = mysqli_query($con,$sql_insert_event);
                    if ($result === false){
                        echo showSQLError($sql_insert_event,mysqli_error($con),'Fout met database.');
                    }
      
?>


Hoe krijg ik nu de venue_id (auto increment van de venue tabel) en de image_id(auto increment van de image tabel) in de event tabel?

Toevoeging op 02/08/2014 09:19:46:

ah, ik zal waarschijnlijk de fb_image_id en de fb_venue_id ook in de eventtabel moeten opslaan...
Wat ook niet onbelangrijk is. Ik maak voor elk json object nu 3 queries.(nu 168 in totaal) Als ik alle json objecten kan samenvoegen hoef ik dit maar 1x te doen. Ik denk dat daar de meeste tijdwinst in zit.
Gewijzigd op 02/08/2014 09:32:22 door N K
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.