Ответы пользователя по тегу MySQL
  • Почему не срабатывает insert into через php?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    $db_table = "articles"; // Имя Таблицы БД

    Нет, не имя таблицы, а имя базы данных ($dbname).

    if (!$mysqli->query($query)) {
        printf("Errormessage: %s\n", $mysqli->error);
    }

    См. также: SQL Injection
    Ответ написан
    2 комментария
  • Как дополнить такой SQL запрос?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Вероятно, что-то типа этого:
    INSERT INTO db (name, f, link, time) VALUES ('%name%', '%price%', '%link%', '%date%') 
    ON DUPLICATE KEY UPDATE f = CONCAT_WS('|', f, '%price%'),  time = CONCAT_WS('|', time, '%date%')
    Ответ написан
    1 комментарий
  • Возможно ли вообще организовать локальную MySQL для C#, доступную для коннектора из программы?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Конечно возможно. Интернет для локальных соединений не нужен.

    Строка соединения примерно такая:

    Server=localhost;Database=example;UID=username;Password=password

    где:
    • example - имя базы данных;
    • usersname - имя пользователя;
    • password - пароль.

    Если используется нестандартный порт, то его можно указать отдельно: Port=123.

    Denwer и прочие тут вообще не нужны. Достаточно скачать официальный дистрибутив MySql и установить.

    С помощью MySQL Workbench можно управлять базами данных через графический интерфейс.

    Код получения данных из MySql в C# может быть примерно таким:

    var connectionString = "Server=localhost;Database=example;UID=username;Password=password";
    using (var connection = new MySqlConnection(connectionString))
    {
      // открываем соединение
      connection.Open();
    
      // создаем команду
      var cmd = new MySqlCommand();
      cmd.Connection = connection;
      cmd.CommandText = "SELECT * FROM table1";
      
      // создаем адаптер
      var adapter = new MySqlDataAdapter(cmd);
      // создаем таблицу
      var table = new DataTable();
      // получаем данные в таблицу
      adapter.Fill(table);
      
      // выводим
      foreach (DataRow row in table.Rows)
      {
        Console.WriteLine(row[0]);
      }
    }
    Ответ написан
    Комментировать
  • Доступ к бд из бэкапа bac и конвертация в mysql?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Нужно использовать самую свежую версию SQL Server, т.к. файлы резервных копий созданные в новых версиях SQL Server нельзя восстановить в старых.

    Что касается конвертирования, то в MySQL Workbench есть функции импорта данных из SQL Server.

    4b21b3f449e2434eb1b52de451b9b655.png

    В SQL Server Management Studio также есть возможность экспорта в MySql через .NET Framework Data Provider for MySql.

    e1a5e9974b86425b9cd22fab8a84911d.png

    Но для этого нужно прежде восстановить базу SQL Server.
    Ответ написан
    1 комментарий
  • Как заменить только первое вхождение в строке?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    -- строка, в которой нужно провести поиск
    SET @parent = '14 11 10 11 52';
    -- строка, которую нужно найти
    SET @search = '11';
    
    -- найти начальную позицию нужной строки
    SELECT INSTR(@parent, @search);
    
    -- зная расположение и размер подстроки, можно вырезать фрагмент текста
    -- первая часть
    SELECT SUBSTR(@parent, 1, INSTR(@parent, @search) - 1);
    -- хвост
    SELECT SUBSTR(@parent, INSTR(@parent, @search) + LENGTH(@search));
    
    -- все вместе
    SELECT CONCAT
    (
      SUBSTR(@parent, 1, INSTR(@parent, @search) - 1), 
      SUBSTR(@parent, INSTR(@parent, @search) + LENGTH(@search))
    );


    Грубый вариант с UPDATE будет примерно таким (лучше процедуру сделать и/или передавать строку поиска через параметр):

    UPDATE example SET parent = CONCAT
    (
      SUBSTR(parent, 1, INSTR(parent, '11') - 1), 
      SUBSTR(parent, INSTR(parent, '11') + LENGTH('11'))
    );
    Ответ написан
    Комментировать
  • Пустой результат mysqli_query($link,$query), где искать?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Получить информацию об ошибках при работе с MySql можно при помощи функции mysqli_error.

    printf("Errormessage: %s\n", mysqli_error($link));

    $query = "SELECT * FROM users WHERE `username`= '$username_login' LIMIT 1";

    Что будет, если убрать условие и сделать такой запрос:

    $query = "SELECT * FROM users LIMIT 1";

    Если запрос успешно выполнится, то вероятно проблема в значении переменной $username_login.

    Передавать значения из переменных прямо в текст запроса не рекомендуется. Лучше передавать через параметры, или как минимум экранировать потенциально опасные символы.

    Если результатов не будет, то необходимо проверить строку соединения и успешность соединения с базой данных. Проверить наличие ошибок при соединении можно с помощью функции mysqli_connect_error:
    $link = mysqli_connect("localhost", "имя пользователя", "пароль", "имя базы");
    
    if (!$link)
    {
        echo mysqli_connect_error();
    }
    Ответ написан
    3 комментария
  • Как сделать вывод данных не с первого значени?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    www.mysql.ru/docs/man/SELECT.html
    Выражение LIMIT может использоваться для ограничения количества строк, возвращенных командой SELECT. LIMIT принимает один или два числовых аргумента. Эти аргументы должны быть целочисленными константами. Если заданы два аргумента, то первый указывает на начало первой возвращаемой строки, а второй задает максимальное количество возвращаемых строк. При этом смещение начальной строки равно 0 (не 1):
    mysql> SELECT * FROM table LIMIT 5,10; # возвращает строки 6-15

    Если задан один аргумент, то он показывает максимальное количество возвращаемых строк:
    mysql> SELECT * FROM table LIMIT 5; # возвращает первых 5 строк


    Т.е. в вашем случае будет запрос вида:
    SELECT * FROM  `users` ORDER BY `money` DESC LIMIT 1, 2
    Ответ написан
    Комментировать
  • Как подключить к веб-приложению (ASP.NET MVC 4) БД MySql?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Необходимо скачать и установить Connector/Net.

    Работать также как и с любыми другими базами в .NET.

    Основные классы:
    • MySqlConnection - для подключения к базе;
    • MySqlCommand и MySqlDataAdapter - формирование запросов и получение данных.

    Подробности можно найти в документации.
    Ответ написан
    Комментировать