Re: What's wrong with this query?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ok guys, I found the problem. It's actually something I've run into before. If you take a look at the query you'll notice that one of the fields is named "returns". When I created the test table with phpMyAdmin it created it and everything seemed fine. Then I decided to try something. I tweaked my install script to add creation of the new log table and ran it. It failed on that field. When I changed the name of the field it worked. I've seen this before when I tried to create a field for another database called "group". Apparently these are MySQL reserved words and you can't use them as names for fields. Go figure. Anyway, that solves the problem. When I run it the data is put into the table, and the line where I echo the $logit var displays a 1. By the way, I changed the name of the returns field to "found".

Nick

Micah Stevens wrote:

Right.. a resource.. sorry.

On Thursday 26 February 2004 12:55 pm, jeffrey_n_Dyke@xxxxxxxxx wrote:


An interesting thought. I tried this:

echo "Term: $search, Returns: $arrayword, UserIP: $ip<br>";
$logit = mysql_query("INSERT INTO log SET term='$search',
returns='$arrayword', time=CURTIME(), date=CURDATE(), ip='$ip'");
echo "Query Value: $logit";

And got this on the page:

Term: skater, Returns: 312, UserIP: 192.168.1.234
Query Value:


----- mysql_query returns a Resource, which is not a printable 'string', You could print_r($logit), or var_dump($logit) and you would most likely see Resouce ID #3 (or some other number). So even if you're query excecutes properly printing $logit will always show as you've written above. The same would hold true of an array, when just using print.

the returned value preceeds the function call in the manual.
from php.net/mysql_query
     resource mysql_query ( string query [, resource link_identifier])


hth jeff -----


Notice that the variables are set with appropriate values, but the $logit variable is blank. This, I think is the problem. The question is why would it do this and not return any type of error? By the way, I tried this using the other syntax people where suggesting and I got the same results. I gotta tell you, this one is really kicking my ass. It's the last piece of an update that I can't release until it's finished.

Nick

Hutchins, Richard wrote:


Been kind of following this thread off and on...

If the syntax is acceptable by MySQL, which it appears to be, is it


possible



that the variables you are using within the query string are not set to
anything? Or is it possible that there is something broken immediately
before the query string is fired?

Most times, when I run into query problems, immediately before I send the
query to the database, I'll echo the statement out to the browser so I can
see the exact string that's being sent to the db.

So can you do this:

$sql = "INSERT INTO log SET term='$search', returns='$arrayword',
time=CURTIME(), date=CURDATE(), ip='$ip'";

echo $sql;

$logit = mysql_query($sql) or
          die(mysql_error());


And check out what gets spit out to the browser when $sql is echoed? Maybe
that'll point out something that's going wrong. If nothing is apparent,


post



the results of echo $sql back to the list and maybe one of us will find
something.

HTH.

Rich



-----Original Message-----
From: Axel IS Main [mailto:nfzgrld@xxxxxxxxxx]
Sent: Thursday, February 26, 2004 2:37 PM
To: PHP DB
Subject: Re:  What's wrong with this query?


Ok, ok. I get the message about the syntax. Since I've used this syntax for a long time and so far there hasn't been a problem I'll assume that's not the problem. I will, however, review this and probably make some changes for the sake of compliance if nothing else. In any event, the syntax is NOT why it is failing, smart ass comments by people who think two years is a long time not withstanding.

As to the useful questions that where asked. There is no
error reported.
Error reporting is set to E_ALL & ~E_NOTICE. I removed the
notice part
so I would get everything and still nothing showed up. I'm
also logging
errors and nothing is showing up in the log either. Not all PHP/MySQL
errors are reported. Sometimes what happens is not considered
an error,
even though it does not do what you would expect it to do. If
the query
syntax was wrong, I would get a syntax error. There is no
error, it just
doesn't write to the table. I can go into phpMyAdmin and with
the same
syntax insert into the table all day long.

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php






[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux