Jump to content

MySQL INSERT INTO Issue


rj.alaskan

Recommended Posts

I am a fairly decent PHP coder, and I have a sufficient knowledge of MySQL to be considered competent. However, I have run across an issue I have never seen before, and after hours of troubleshooting, I still cannot figure out what is the issue. I am writing a script to monitor server status and log uptime. I have everything working except the logging part. Here is my code and query:

 

mysql_connect ('localhost', 'root', 'm@t$u33');
mysql_select_db ('servers');

//update log with statistics
$logquery = 'INSERT INTO server_log (uid, datetime, icmp_lat, tcp_lat, net_stat, tcp_stat) VALUES ("'.$UID.'", NOW(), "'.$icmp_lat.'", "'.$tcp_lat.'", "'.$net_stat.'", "'.$tcp_stat.'")';
mysql_query ($logquery);
echo $logquery;
echo mysql_error();

 

The echo echoes the query like this:

 

INSERT INTO server_log (uid, datetime, icmp_lat, tcp_lat, net_stat, tcp_stat) VALUES ("1", NOW(), "6.5088272094727E-5", "0.0003809928894043", "UP", "UP")

 

And the echo for the mysql_error() does not echo anything. All is well, right? I check phpMyAdmin to see if the log is really getting updated, and there are zero rows inserted. Weird, I thought. So I copy the echoed query and paste it into a mysql client prompt:

 

mysql> use servers;
Database changed
mysql> INSERT INTO server_log (uid, datetime, icmp_lat, tcp_lat, net_stat, tcp_s
tat) VALUES ("2", NOW(), "0.00050783157348633", "0.00083398818969727", "UP", "UP
");
Query OK, 1 row affected (0.00 sec)

mysql>

 

The query worked just fine, verified by phpMyAdmin. I have tried changing the database engine, I am currently using MyISAM. I am completely clueless as to why it is not working.

 

Table structure:

 

mysql> show create table server_log\g
+------------+------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------+
| Table      | Create Table


                         |
+------------+------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------+
| server_log | CREATE TABLE `server_log` (
  `uid` int(3) NOT NULL,
  `datetime` datetime NOT NULL,
  `icmp_lat` int(4) NOT NULL,
  `tcp_lat` int(4) NOT NULL,
  `net_stat` varchar(4) NOT NULL,
  `tcp_stat` varchar(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+------------+------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------+
1 row in set (0.02 sec)

mysql>

 

MySQL version: 5.5.16

 

Any help will be greatly appreciated! Let me know if you need more of my code!

 

Thanks in advance!

Link to comment
https://forums.phpfreaks.com/topic/253707-mysql-insert-into-issue/
Share on other sites

I don't see anything obviously wrong with the code. Add this after the query execution and see if it shows you any rows were affected.

echo '<br>Rows inserted: ' . mysql_affected_rows() . '<br>';

Thanks for the reply, sorry for wasting your time, I found out what was wrong. I have several places where the logic tree could terminate and log results, and when I went to insert the code you specified, I saw that the place the logic was leading to did not have the line

 

mysql_query($logquery);

 

So thank you for having me reevaluate my code, I will be much more careful about posting next time. It seems like it is always the smallest, dumbest things. I love your sig tag line by the way

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.