Формат даты ActiveRecord

Ниже приведены проверенные, проверенные и проверенные методы проверки наличия строки.

(Некоторые из них я использую сам или использовал в прошлом).

Изменить: Я сделал предыдущую ошибку в синтаксисе, где дважды использовал mysqli_query().

Ie:

if (!mysqli_query($con,$query)), который должен быть просто прочитан как if (!$query).

  • Приносим извинения за игнорируя эту ошибку.

Боковое примечание: оба '".$var."' и '$var' делают то же самое. Вы можете использовать один из них, оба являются допустимым синтаксисом.

Вот два отредактированных запроса:

$query = mysqli_query($con, "SELECT * FROM emails WHERE email='".$email."'");

    if (!$query)
    {
        die('Error: ' . mysqli_error($con));
    }

if(mysqli_num_rows($query) > 0){

    echo "email already exists";

}else{

    // do something

}

и в вашем случае:

$query = mysqli_query($dbl, "SELECT * FROM `tblUser` WHERE email='".$email."'");

    if (!$query)
    {
        die('Error: ' . mysqli_error($dbl));
    }

if(mysqli_num_rows($query) > 0){

    echo "email already exists";

}else{

    // do something

}

Вы также можете использовать mysqli_ с помощью метода подготовленного оператора :

$query = "SELECT `email` FROM `tblUser` WHERE email=?";

if ($stmt = $dbl->prepare($query)){

        $stmt->bind_param("s", $email);

        if($stmt->execute()){
            $stmt->store_result();

            $email_check= "";         
            $stmt->bind_result($email_check);
            $stmt->fetch();

            if ($stmt->num_rows == 1){

            echo "That Email already exists.";
            exit;

            }
        }
    }

Или метод PDO с подготовленным оператором :

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
     exit( $e->getMessage() );
}

// assuming a named submit button
if(isset($_POST['submit']))
    {

        try {
            $stmt = $conn->prepare('SELECT `email` FROM `tblUser` WHERE email = ?');
            $stmt->bindParam(1, $_POST['email']); 
            $stmt->execute();
            while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

            }
        }
        catch(PDOException $e) {
            echo 'ERROR: ' . $e->getMessage();
        }

    if($stmt->rowCount() > 0){
        echo "The record exists!";
    } else {
        echo "The record is non-existant.";
    }


    }
?>
  • Подготовленные утверждения лучше всего использовать для защиты от SQL-инъекции.

NB:

При работе с формы и POST-массивы, как указано выше, убедитесь, что массивы POST содержат значения, что метод POST используется для формы и сопоставляет именованные атрибуты для входных данных.

  • FYI: Формы по умолчанию к методу GET, если не указано объяснение.

Примечание: - $_POST['var'] соответствует. $_POST['Var'] нет совпадения.

  • Массивы POST чувствительны к регистру.

Обратитесь к

Ссылки на проверку ошибок:

Обратите внимание, что API MySQL не смешиваются в если вы можете посетить этот Q & amp; A, и вы используете mysql_ для соединения с (и с запросом).

  • Вы должны использовать тот же самый из подключения к запросам.

Проконсультируйтесь с этим:

Если вы используете API mysql_ и не имеете возможности работать с ним, обратитесь к следующему Q & amp; A on Stack:

Функции mysql_* устарели и будут удалены из будущего Релизы PHP.

  • Пришло время перейти в 21-й век.

Вы также можете добавить ограничение UNIQUE к (a ) строки

Ссылки:

16
задан Mongus Pong 27 March 2010 в 16:22
поделиться

3 ответа

DateTime Rails пытается определить форматирование автоматически. Он определит следующие форматы: мм / дд / гг или дд-мм-гг или гггг-мм-дд или гггг / мм / dd . Вы можете использовать monkey-patch DateTime.parse , но я бы предпочел переместить эту проблему в View вашего приложения.

Я всегда рекомендую использовать гггг-мм-дд [чч: мм: сс] как строковое представление даты. Проверьте документацию вашего DatePicker, если он поддерживает несколько форматов даты.

Средство выбора даты jQuery, например, покрывает это с помощью dateFormat (для данных, которые отправляются на сервер, установите его на гггг-мм-дд ), а также altFormat (для ввода, который видит пользователь, установите его на дд / мм / гггг ).

20
ответ дан 30 November 2019 в 17:04
поделиться
class Date
  class << self
    def _parse_with_us_format(date, *args)
      if date =~ %r{^(\d+)/(\d+)/(\d+)$}
        _parse_without_us_format("#{$3.length == 2 ? "20#{$3}" : $3}-#{$1}-#{$2}", *args)
      else
        _parse_without_us_format(date, *args)
      end
    end
    alias_method_chain :_parse, :us_format
  end
end
2
ответ дан 30 November 2019 в 17:04
поделиться

Добавьте файл с именем rails_defaults.rb в каталог config \ initializers ; со следующими строками:

Date::DATE_FORMATS[:default] = '%d/%m/%Y'
Time::DATE_FORMATS[:default]= '%d/%m/%Y %H:%M:%S'

Перезагрузите сервер, и все готово.

12
ответ дан 30 November 2019 в 17:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: