Variable concatenated mysql query string runs fine in phpMyAdmin but not PHP in script -
updated 14/04/2011
still in trouble. reduced code simplest form. use if function check isset() checkbox, works fine. if checkbox checked concatenates string made of 2 parts. simple.
if (isset($_post[testtype1])) { $filterquery .= "(testtype1 = '1'"; } $filterquery .= ") "; } when use mysql_fetch_assoc , echo info in $rows works. when view page source in google chrome says: invalid query: have error in sql syntax; check manual corresponds mysql server version right syntax use near '' @ line 1;
if echo $filterquery displays correctly , when copy echoed string code mysql returns correct results:
select * fdatav1 join ddatav1 on ddatav1.id = fdatav1.id (testtype1 = '1')
i have tried casting $filterquery string well. no success.
updated 12/04/2011
i still have problem, wasn't typo. see code below:
$query = "select * fdatav1 join ddatav1 on ddatav1.id = fdatav1.id ";` $ortrigger = "";` function setortrigger() { global $ortrigger; if ($ortrigger=="") { $ortrigger="or "; } } function gettestfilterquery($testtype) { if (!(isset($_post[test1])) && !(isset($_post[test2])) && !(isset($_post[test3]))) { $returnstring = null; return $returnstring; } } if (isset($_post[testtype1])) { $filterquery .= $ortrigger ."(testtype1 = '1'"; setortrigger(); $addtestfilterquery = gettestfilterquery("testtype1"); if ($addtestfilterquery != null) { $filterquery .= "and " .$addtestfilterquery; } $filterquery .= ") "; } $connection = mysql_connect(localhost, $username, $password); if (!$connection) { die('not connected : ' . mysql_error()); } $db_selected = mysql_select_db($database, $connection); if (!$db_selected) { die ('can\'t use db : ' . mysql_error()); } $result = mysql_query($filterquery); if (!$result) { die('invalid query: ' . mysql_error()); } while ($row = @mysql_fetch_assoc($result)) { echo $row['name']; echo $row['description']; } when echo $query get:
select * fdatav1 join ddatav1 on ddatav1.id = fdatav1.id (testtype1 = '1')
when copy directly mysql_query like:
mysql_query("select * fdatav1 join ddatav1 on ddatav1.id = fdatav1.id (testtype1 = '1')"); it works fine. when pass variable like:
mysql_query($filterquery);
i syntax error 1 near ''. know how resolve this?
are putting double quotes in string, like:
$query = '"select * table col = value"'; echo $query; //output exactly: "select * table col = value" if so, need remove "s inside string, mysql_query or whatever takes normal string like:
$query = "select * table col = value"; echo $query; //output exactly: select * table col = value in same way, don't end sql query ; in string like: $query = "select * table col = value;";
Comments
Post a Comment