2014-09-05 2 views
0

Хороший день - у меня есть php-скрипт, импортирующий данные из mssql в mysq. Но получите ошибку: ожидается a [php mssql ошибка интеграции mysql

вот код полученная ошибка. "ошибка синтаксиса, неожиданный, ожидая ']' в/вар/WWW/интеграции/assetsim $ ''"

// Execute the MS-Sql stament and loop over the data 
    $qt=mssql_query($query); 
    while($nt=mssql_fetch_array($qt)) 
    { 

    // error occurs here!!!!!!!! with echo!! 

    echo "$nt[SERNUM]"; 
    echo "<br>"; 


    } 

    $myquery = INSERT ignore INTO x3assetimport(PRODUCT_CATEGORY, STOCK_SITE, PRODUCT_CODE)  VALUES('".$nt[SERNUM]."', '".$nt[STOFCY]."','".$nt[TCLCOD]."'); 
    mysql_query($myquery) or Die("MySQL Query Failed " . mysql_error()); 

    echo "done"; 
+1

FYI, 'mysql_ *' функции устарели. Вместо этого используйте 'PDO' или' mysqli'. – iswinky

+0

** Никогда ** используйте кавычки, когда вы хотите печатать массивы. В некоторых случаях это работает, но вы не должны этого делать. Просто используйте 'echo $ nt ['SERNUM'];' –

+1

Вам нужно исправить свой код в определенных точках. ** 1. ** Как @iswinky сказал, 'mysql_' функции устарели, не используйте их. ** 2. ** Как и @EduardLuca, никогда не используйте кавычки, когда вы хотите печатать массивы. ** 3. ** Используйте правильный отступ, он помогает вам и другим читать ваш код более легко. ** 4. ** Вы забыли двойную кавычку рядом с '$ myquery ='. ** 5. ** Вы используете строки как константы, когда пытаетесь прочитать значение ассоциативного массива. Ключи ассоциативного массива - это просто строки. Напишите '$ nt ['SERNUM']' вместо '$ nt [SERNUM]'. Я предлагаю вам больше узнать о кодировании. –

ответ

0

запрос должен быть как -

$myquery = 'INSERT ignore INTO x3assetimport(PRODUCT_CATEGORY, STOCK_SITE, PRODUCT_CODE)  VALUES("'.$nt[SERNUM].'", "'.$nt[STOFCY].'","'.$nt[TCLCOD].'")'; 

также маскирование должны быть рассмотрены ошибка исходит из синтаксических ошибок.

+1

Запрос также должен иметь [надлежащее экранирование] (http://bobby-tables.com/php), потому что составление запросов таким образом серьезно опасно. – tadman

+0

да, что должно быть .. Я просто указываю на синтаксическую ошибку. –

+0

Спасибо, все попробуют, смешно, что это работает на моем тестовом сервере, не в производстве? –