Задать вопрос
Ответы пользователя по тегу MySQL
  • Почему вот этот код не работает? Где тут проблема?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Что будет в вашем запросе, если ему передать
    $globaloutput = "0'); DROP TABLE IF EXISTS `users`;--"

    Сделайте лучше через bind, так гораздо безопаснее и не надо вручную эскейпить строки.
    $req = $mysqli->query("INSERT INTO projects VALUES(0, ?, ?, ?, ?, ?)");
    $req->bind_param("issss", $name, $ur_name, $startdate, $globalinput, $globaloutput);
    $req->execute();
    Ответ написан
    1 комментарий
  • Архитектура MySQL таблицы: строки или числа

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Пусть в вашей таблице объектов есть поле objectId - идентификатор объекта. Создадим дополнительную таблицу, связанную по полю objectId с таблицей объектов. Таблица содержит поля номера сервиса serviceNum и его статуса serviceStatus.
    CREATE TABLE `service_states` 
      `objectId` BIGINT NOT NULL DEFAULT '0',
      `serviceNum` INT NOT NULL DEFAULT '0',
      `serviceState` tinyint(1) DEFAULT '0',
      PRIMARY KEY (`objectId`,`serviceNum`),
      KEY `byServiceState` (`serviceState`),
      KEY `byServiceNum` (`serviceNum`))
    ENGINE=InnoDB DEFAULT CHARSET=utf8';

    Запрос всех объектов, аналогичный вашему, будет выглядеть как
    SELECT * FROM `test_b` as tb
    RIGHT JOIN `service_states` as ss USING(objectId)
    WHERE ss.serviceNum = 3 AND ss.serviceState = 2;
    Ответ написан