2016-04-26 2 views
0

ich diese SQL in meinem Code hinzugefügt haben,Syntaxfehler oder Zugriffsverletzung php sql

function devenir_client_dataforform() { 
     $type = $_POST['clientType']; 
     //$produitname = $_POST['produitname']; 
     $produitnid = $_POST['produitnid']; 
     $query = db_select('node', 'n'); 

     $query->leftjoin('field_data_field_description_col_1', 'img', 'img.entity_id = n.nid'); 
     $query->leftjoin('field_data_field_pdf_file_image', 'pdf', 'pdf.entity_id = n.nid'); 
     $query->leftjoin('taxonomy_term_data', 't', 't.tid ='.$type); 



     $query->condition('n.nid', $produitnid, '=') 
       //->condition('t.tid', $type, '=') 
       ->fields('n', array('title')) 
       ->fields('t', array('name')) 
       ->fields('pdf', array('field_pdf_file_image_fid')) 
       ->fields('img', array('field_description_col_1_value')); 

     $result = $query->execute(); 
     foreach ($result as $record) { 
      if(!empty($record->field_description_col_1_value)) { 
       $fid = $record->field_description_col_1_value; 
       $produitname = $record->title; 
       $pdf = $record->field_pdf_file_image_fid; 
       $tp = $record->name; 

      } 
     } 
     $file = file_load($pdf); 
     $uri = $file->uri; 

     $path = file_create_url($uri); 
     //$uri = image_style_path($path); 
     $items[] = array(
          "type" => $tp , 
          "produitname" => $produitname, 
          "produitnid" => $produitnid, 
          "image" => $fid, 
          "pdf" => $path, 
          "typeid" => $type 
        ); 
     return $items; 
    } 

aber im letzten Schritt gibt es einen Fehler

PDOException: SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1064 Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das entspricht Ihrer MySQL-Server-Version für die richtige Syntax zu verwenden in der Nähe von 'WHERE (n.nid = NULL)' in Zeile 4: SELECT n.title AS Titel, t.name AS Name, pdf.field_pdf_file_image_fid AS field_pdf_file_image_fid, img.field_description_col_1_value AS field_description_col_1_value FROM {node} n LEFT OUTER JOIN {} field_data_field_description_col_1 img img.entity_id ON = n.nid LEFT OUTER JOIN } {field_data_field_pdf_file_image pdf ON pdf.entity_id = n.nid LEFT OUTER JOIN {taxonomy_term_data} t ON t.tid = WO (n.nid = : db_condition_placeholder_0); Array ([: db_condition_placeholder_0] =>) in devenir_client_dataforform() (Zeile 189 von /home/dotit_bh/bh-website.dotit.mobi/sites/all/modules/devenir_client/devenir_client.module).

enter image description here

Antwort

0

Fehler in diesem Teil von SQL Query:

WHERE (n.nid = NULL) 

Correct SQL Query:

WHERE (n.nid is NULL) 

Sie Ihr Skript neu schreiben soll:

$nid_operator = ($produitnid ? '=' : 'is'); 
$query->condition('n.nid', $produitnid, $nid_operator) 
       //->condition('t.tid', $type, '=') 
       ->fields('n', array('title')) 
       ->fields('t', array('name')) 
       ->fields('pdf', array('field_pdf_file_image_fid')) 
       ->fields('img', array('field_description_col_1_value'));