Reputation: 240
I have to select a lot of tables and Fields using PHP and MySQL. But the structure and naming of these are every time the same.
I have the tables field_revision_blabla and the fields blablabla_value from table-alias blablabla_table.
for ($i=0; $i < sizeof($typeFields); $i++) {
$query->join(
"field_revision_".$typeFields[$i],
$typeFields[$i]."_table",
'n.nid = $typeFields[$i]."_table.entity_id"');
$query->addField($typeFields[$i]."_table", $typeFields[$i]."_value");
}
But that gives me the error:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[$i])."_table.entity_id" INNER JOIN field_revision_field_text field_text_table O' at line 2
I think the error is in
'n.nid = $typeFields[$i]."_table.entity_id"'
Upvotes: 0
Views: 143
Reputation: 2347
Use double quotes instead of single, I doubt you have record in DB containing n.nid = $typeFields[$i]."_table.entity_id"
:
for ($i=0; $i < sizeof($typeFields); $i++) {
$query->join(
"field_revision_".$typeFields[$i],
$typeFields[$i]."_table",
"n.nid = ".$typeFields[$i]."_table.entity_id");
$query->addField($typeFields[$i]."_table", $typeFields[$i]."_value");
}
Upvotes: 1
Reputation: 9299
SO's color coding should have flagged this for you...along with the SQL statement complaining about variables in the query. Your $typeFields[$i]
isn't being figured in the string.
"n.nid = " . $typeFields[$i] . "_table.entity_id"
Upvotes: 2