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

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -