2016-12-10 2 views
-2

Я продолжаю получать следующую ошибку для этой функции.Застрял с синтаксической ошибкой с базовой функцией php.

Parse error: syntax error, unexpected '$tempsql' (T_VARIABLE) in /home/vps20119/public_html/outlet/admin/internal/dcOrderFunctions.php on line 6

Я не понимаю. Я не могу найти никаких синтаксических ошибок до того, как я начну определять/объявлять $ tempsql. Что я пересматриваю? Ниже приведена копия всего файла.

<?php 
//A function to extract the QC from the Order number 
function orderGetQC($dropcomOrderID){ 

      //Get the Product ID from the order. 
      $tempsql = "SELECT * FROM `oc_order_product` WHERE `order_id` = '". $dropcomOrderID ."'"; 
      //runs the query (above) and puts the resulting data into a variable called $orderInfo. 
      $orderInfo = $conn->query($tempsql); 
      $temprow = $orderInfo->fetch_assoc(); 
      $productID = $temprow['product_id']; 

      //Get the QC from the product ID. 
      $tempsql2 = "SELECT * FROM `multi_quantity_received` WHERE `product_id` = '". $productID ."'"; 
      //runs the query (above) and puts the resulting data into a variable called $productInfo. 
      $productInfo = $conn->query($tempsql2); 
      $temprow2 = $productInfo->fetch_assoc(); 
      if($productInfo->num_rows > 1){ 
       $QC = "multipleQCs"; 
      } else { 
       $QC = $temprow2['qc']; 
      } 

      return $QC; 

} 
?> 
+1

нет синтаксической ошибки в коде выше –

+2

их нет синтаксической ошибки в коде, вы уверены, что вы выложили правильный код ?? –

+0

Попробуйте удалить комментарий перед этой строкой. Это длинный выстрел, но стоит попробовать – Machavity

ответ

0

Добрый вечер ID10T ОШИБОК,

У меня была аналогичная проблема, не так давно. Проблема в том, что мой FTP (FileZilla) начал загружать мои файлы в BINARY MODE вместо ASCII MODE. Это приводит к тому, что файл загружается для уплотнения. Это вызывает проблему для кода, следующего за комментариями одной строки, например, приведенной в вашем коде выше.

Возьмите этот кусок кода, например:

//Get the Product ID from the order. 
$tempsql = "SELECT * FROM `oc_order_product` WHERE `order_id` = '". $dropcomOrderID ."'"; 

То есть два простых, хорошо написанные строки PHP! Но что произойдет, если FTP конденсирует эти строки в один? Вы получаете что-то вроде этого:

//Get the Product ID from the order. $tempsql = "SELECT * FROM `oc_order_product` WHERE `order_id` = '". $dropcomOrderID ."'"; 

Обратите внимание, теперь переменная $ tempsql закомментирована, что делает его недоступным (или неожиданным.) В вашей конкретной ситуации, он блокируется, что первый комментарий. Если это действительно проблема, есть две основные вещи, которые вы можете сделать, чтобы исправить это. Смотри ниже.

1. Включите однострочный комментарий в блоке комментарии

Хорошо, это действительно больше обходного чем реальное исправление, но если это работает, вы знаете, что это ваша проблема! Просто переведите все свои однострочные комментарии в комментарии блоков, как показано ниже.

<?php 
/*A function to extract the QC from the Order number */ 
function orderGetQC($dropcomOrderID){ 

    /* Get the Product ID from the order. */ 
    $tempsql = "SELECT * FROM `oc_order_product` WHERE `order_id` = '". $dropcomOrderID ."'"; 
    /* runs the query (above) and puts the resulting data into a variable called $orderInfo. */ 
    $orderInfo = $conn->query($tempsql); 
    $temprow = $orderInfo->fetch_assoc(); 
    $productID = $temprow['product_id']; 

    /* Get the QC from the product ID. */ 
    $tempsql2 = "SELECT * FROM `multi_quantity_received` WHERE `product_id` = '". $productID ."'"; 
    /* runs the query (above) and puts the resulting data into a variable called $productInfo. */ 
    $productInfo = $conn->query($tempsql2); 
    $temprow2 = $productInfo->fetch_assoc(); 
    if($productInfo->num_rows > 1){ 
     $QC = "multipleQCs"; 
    } else { 
     $QC = $temprow2['qc']; 
    } 

    return $QC; 

} 
?> 

2. Измените FileZilla (или связанный FTP) с двоичного на ASCII-режим.

1) Open FileZilla.

2) Open the settings menu by clicking 'Edit' on the toolbar, then clicking on 'settings'.

3) Under the 'Transfers' group, click on the option called 'File Types'.

4) Select the box that says 'ASCII'.

5) Press 'OK' and try to transfer the file again. Hopefully it should work!

Надеюсь, это было полезно! Если нет, оставьте комментарий, и мы можем попытаться понять что-то еще!

С уважением,

Тимоти

+1

, если вы правы, вы волшебник –

+1

откровенно я не думаю, что случайное угадывание - это хорошо Идея –

+1

@Dagon Люди, которые получают подобную проблему, по крайней мере увидят одно решение, которое уже выяснил другой человек.Этот ответ (хотя он и не может решить проблему OP) по-прежнему является правильным ответом на вопрос, который ОП задает в других случаях. +1 от меня – Daidon

Смежные вопросы