Hey guys, I'm trying to use the db_query function with named placeholders but I'm getting this error message:
PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens: SELECT {node}.nid, {field_data_field_link}.field_link_value, {field_data_field_image}.field_image_fid FROM {field_data_field_link}, {field_data_field_image}, {node}, {field_data_field_placement} WHERE {node}.type = 'advertisement' AND {node}.nid = {field_data_field_link}.entity_id AND {node}.nid = {field_data_field_image}.entity_id AND {node}.nid = {field_data_field_placement}.entity_id AND {field_data_field_placement}.field_placement_value=':placement' ORDER by rand() LIMIT :num; Array ( [:placement] => Header [:num] => 1 ) in random_advertisement()
This is the code I am trying to use:
// --- Variables to replace the placeholders in the SQL statement
$sql_vars = array(
':placement'=>$placement,
':num'=>$num
);
// --- Get all of the advertisement nodes from the database
$result = db_query('SELECT {node}.nid, {field_data_field_link}.field_link_value, {field_data_field_image}.field_image_fid
FROM {field_data_field_link}, {field_data_field_image}, {node}, {field_data_field_placement}
WHERE {node}.type = \'advertisement\'
AND {node}.nid = {field_data_field_link}.entity_id