2016-04-26 7 views
0

私は、私のコードで構文エラーまたはアクセス違反の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; 
    } 

をこのSQLを追加したが、最後のステップでエラー

PDOExceptionがあります:SQLSTATE [42000]:構文エラーまたはアクセス違反:1064 あなたのSQL構文でエラーが発生しています。正しい構文については がMySQLサーバのバージョンに対応していることを確認して、 の4行目の 'WHERE(n.nid = NULL)'の近くで使用してください:SELECT n.title AS title、t.name AS名、pdf.field_pdf_file_image_fid AS field_pdf_file_image_fid、FROM img.field_description_col_1_value AS field_description_col_1_value {ノード} N LEFT OUTER JOIN {field_data_field_description_col_1} IMG ON img.entity_id = n.nid LEFT OUTER = pdf.entity_id ON {field_data_field_pdf_file_image} PDFをJOIN n.nid LEFT OUTER JOIN {taxonomy_term_data} T ON t.tid =(n.nid = :db_condition_placeholder_0)。アレイ([:db_condition_placeholder_0] =>)devenir_client_dataforformに()(ライン/home/dotit_bh/bh-website.dotit.mobi/sites/all/modules/devenir_client/devenir_client.moduleの189)。 SQLクエリのこの部分で

enter image description here

答えて

0

エラー:

WHERE (n.nid = NULL) 

正しいSQLクエリ:

$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')); 
:あなたは、あなたのスクリプトを書き換えなければなら

WHERE (n.nid is NULL) 

関連する問題