Ниже приведены проверенные, проверенные и проверенные методы проверки наличия строки.
(Некоторые из них я использую сам или использовал в прошлом).
Изменить: Я сделал предыдущую ошибку в синтаксисе, где дважды использовал 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.";
}
}
?>
NB:
При работе с формы и POST-массивы, как указано выше, убедитесь, что массивы POST содержат значения, что метод POST используется для формы и сопоставляет именованные атрибуты для входных данных.
Примечание: -
$_POST['var']
соответствует. $_POST['Var']
нет совпадения.
Обратитесь к
Ссылки на проверку ошибок:
Обратите внимание, что API MySQL не смешиваются в если вы можете посетить этот Q & amp; A, и вы используете mysql_
для соединения с (и с запросом).
Проконсультируйтесь с этим:
Если вы используете API mysql_
и не имеете возможности работать с ним, обратитесь к следующему Q & amp; A on Stack:
Функции mysql_*
устарели и будут удалены из будущего Релизы PHP.
Вы также можете добавить ограничение UNIQUE к (a ) строки
Ссылки:
DateTime Rails пытается определить форматирование автоматически. Он определит следующие форматы: мм / дд / гг
или дд-мм-гг
или гггг-мм-дд
или гггг / мм / dd
. Вы можете использовать monkey-patch DateTime.parse
, но я бы предпочел переместить эту проблему в View вашего приложения.
Я всегда рекомендую использовать гггг-мм-дд [чч: мм: сс]
как строковое представление даты. Проверьте документацию вашего DatePicker, если он поддерживает несколько форматов даты.
Средство выбора даты jQuery, например, покрывает это с помощью dateFormat
(для данных, которые отправляются на сервер, установите его на гггг-мм-дд
), а также altFormat
(для ввода, который видит пользователь, установите его на дд / мм / гггг
).
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
Добавьте файл с именем rails_defaults.rb
в каталог config \ initializers
; со следующими строками:
Date::DATE_FORMATS[:default] = '%d/%m/%Y'
Time::DATE_FORMATS[:default]= '%d/%m/%Y %H:%M:%S'
Перезагрузите сервер, и все готово.