Please help. I consider myself to have a reasonable understanding of MySql & PHP, but for the life of me I can't figure out why this code is inserting the same row twice. I've literally stripped it back to the following code:
<?php
$query = "INSERT INTO `cs_social_alerts` (email) VALUES ('test@test.com')";
mysql_query($query);
?>
The MySQL table it's being inserted into has 10 columns in it, but even with all of them mentioned in the query, it still inserts 'test@test.com' on two rows, with separate primary keys.
I've created a new Wordpress page to run this on as all other pages seem to be functioning fine without the duplication.
I've done some Googling which hasn't found much of any help - Is there anyway I can check where the second query is coming from? I've starred at the above code for about an hour now and cannot see any issues with it.
Any ideas/help MUCH appreciated!
Thanks
----- EDIT -----
So here's the result from the debug traceback, the code that's being run is literally the 2 lines above - I've blanked the domain for security. Can anyone see any interference? I'm no PHP expert and with all the extra Wordpress stuff thrown in, I'm not sure what's what! Thanks guys
0 eval() called at [/var/sites/c/****.com/public_html/wp-content/plugins/wp-exec-php/wp-exec-php.php:652]
1 WP_exec_PHP->exec(
$myQuery = "INSERT INTO cs_social_alerts
(email) VALUES ('test@test.com')";
mysql_query($myQuery);
debug_print_backtrace()
?>
) called at [/var/sites/c/****.com/public_html/wp-content/plugins/wp-exec-php/wp-exec-php.php:692]
2 WP_exec_PHP->_exec_post(
$myQuery = "INSERT INTO cs_social_alerts
(email) VALUES ('test@test.com')";
mysql_query($myQuery);
debug_print_backtrace()
?>
)
3 call_user_func_array(Array ([0] => WP_exec_PHP Object ([] => Array (),[] => /var/sites/c/*.com/public_html/wp-content/plugins/wp-exec-php/wp-exec-php.php),[1] => _exec_post), Array ([0] =>
$myQuery = "INSERT INTO cs_social_alerts
(email) VALUES ('test@test.com')";
mysql_query($myQuery);
debug_print_backtrace()
?>
)) called at [/var/sites/c/*.com/public_html/wp-includes/plugin.php:192]
4 apply_filters(the_content,
$myQuery = "INSERT INTO cs_social_alerts
(email) VALUES ('test@test.com')";
mysql_query($myQuery);
debug_print_backtrace()
?>
I had the same problem, and it was chrome fault! I clear the sessions, cookies, cache, all data application and it works.
Try a PHP Data Object(PDO). Using the mysql_* functions are obsolete.
These variable initializations should be defined in an ini file that you use php_parse_ini() to get the data from.
Also, if you want to know if this code is getting run more than once. Try setting a $_SESSION variable. I.E. $_SESSION['count'] = 0; Then right before execute() put $_SESSION['count']++; Finally, dump the value of $_SESSION at the end of your code to determine what the value is.
Have you tried another browser? I had plenty of bad experiences because some extensions that I had in my browser were requesting the page one more time.
Even if that's not your problem, I think you should check for external factors, as this code cannot insert two rows. Unless, of course, it's being called twice.
Use the PHP function debug_print_backtrace() to find out where your code is being called from.