none
Powershell Исключение при вызове "ExecuteNonQuery" с "0" аргументами RRS feed

  • Вопрос

  • Всем Доброго времени суток!

    Мучаю скрипт.

    работает, выдает информацию запрашиваемую на экране, но когда цикл подходит к концу и нужно записывать в базу MySQL, выдает ошибку:

    Исключение при вызове "ExecuteNonQuery" с "0" аргументами: "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'group) VALUES ('192.168.1.1', 'pc-312-01.domain.local',
     'DOMAIN\\login' at line 1"

    28 июля 2014 г. 12:33

Ответы

  • GROUP - это, вообще-то, зарезервированное в SQL слово (из конструкции GROUP BY). За MySQL не скажу, а в Transact-SQL (для MS SQL) имена полей, если они совпадают с зарезервированными словами, надо заключать, например, в квадратные скобки.

    PS Судя по мануалу, надо использовать обратную кавычку - `


    Слава России!


    • Изменено M.V.V. _ 28 июля 2014 г. 12:55
    • Помечено в качестве ответа Pelev1n 28 июля 2014 г. 13:19
    28 июля 2014 г. 12:52

Все ответы

  • Покажите команду для выполнения запроса.

    Должно быть примерно:

    $query = "INSERT INTO log (ip,name,login) VALUES ('192.168.1.1','pc-312-01.domain.local','DOMAIN\\Login')"


    • Изменено KazunEditor 28 июля 2014 г. 12:45
    28 июля 2014 г. 12:45
    Отвечающий
  • GROUP - это, вообще-то, зарезервированное в SQL слово (из конструкции GROUP BY). За MySQL не скажу, а в Transact-SQL (для MS SQL) имена полей, если они совпадают с зарезервированными словами, надо заключать, например, в квадратные скобки.

    PS Судя по мануалу, надо использовать обратную кавычку - `


    Слава России!


    • Изменено M.V.V. _ 28 июля 2014 г. 12:55
    • Помечено в качестве ответа Pelev1n 28 июля 2014 г. 13:19
    28 июля 2014 г. 12:52
  • Покажите команду для выполнения запроса.

    Должно быть примерно:

    $query = "INSERT INTO log (ip,name,login) VALUES ('192.168.1.1','pc-312-01.domain.local','DOMAIN\\Login')"


    $mysqlCommand.CommandText = "INSERT INTO userInfo (ip, name, user, sid, userInfo, searchDoc, group, network) VALUES ('$ip', '$pcName', '$domain\\$login', '$sid', '$userInfo', '$searchDoc', '$group', '$network')"
    28 июля 2014 г. 12:53
  • Покажите команду для выполнения запроса.

    Должно быть примерно:

    $query = "INSERT INTO log (ip,name,login) VALUES ('192.168.1.1','pc-312-01.domain.local','DOMAIN\\Login')"


    $mysqlCommand.CommandText = "INSERT INTO userInfo (ip, name, user, sid, userInfo, searchDoc, group, network) VALUES ('$ip', '$pcName', '$domain\\$login', '$sid', '$userInfo', '$searchDoc', '$group', '$network')"

    Насколько понимаю, так:

    $mysqlCommand.CommandText = "INSERT INTO userInfo (ip, name, user, sid, userInfo, searchDoc, `group`, network) VALUES ('$ip', '$pcName', '$domain\\$login', '$sid', '$userInfo', '$searchDoc', '$group', '$network')"


    Слава России!

    28 июля 2014 г. 12:57
  • GROUP - это, вообще-то, зарезервированное в SQL слово (из конструкции GROUP BY). За MySQL не скажу, а в Transact-SQL (для MS SQL) имена полей, если они совпадают с зарезервированными словами, надо заключать, например, в квадратные скобки.

    PS Судя по мануалу, надо использовать обратную кавычку - `


    Слава России!


    или использовать другую переменную
    • Помечено в качестве ответа Pelev1n 28 июля 2014 г. 13:18
    • Снята пометка об ответе Pelev1n 28 июля 2014 г. 13:19
    28 июля 2014 г. 12:58