сохранение даты с использованием mysql и php

#php #mysql #date

#php #mysql #Дата

Вопрос:

правильный ли этот запрос mysql? обратите внимание, что userdate — это Дата

       sprintf("INSERT INTO userinfo (username,userbdate,national,email, mobilenum,phonenum,
                        street,city,stateof , postoofice,country,lastcirt,cirt,specailzation,exper,
                        yearsofexper,notes)
                        VALUES ('%s', '%d' , '%s' , '%s' , '%d' , '%d' ,
                        '%s','%s','%s','%s','%s','%s','%s','%s','%s',
                        '%d','%s')",
                        $user->getUserName(),
                        $user->getgetBirthDate(),
                        $user->getNational(),
                        $user->getEmail(),
                        $user->getMobilenum(),
                        $user->getPhonenum(),
                        $user->getPhonenum(),
                        $user->getStreet(),
                        $user->getCity(),
                        $user->getStateof(),
                        $user->getPostoffice(),
                        $user->getCountry(),
                        $user->getLastcirifacite(),
                        $user->getCirifacite(),
                        $user->getSpecailaztion(),
                        $user->getExper(),
                        $user->getYearsOfexper(),
                        $user->Notes(),
                        $userModel->getUserId());
  

Комментарии:

1. postoofice не уверен, намеренно это или опечатка

Ответ №1:

Почему бы вам не попробовать и не посмотреть? Мы не можем угадать, каковы все ваши значения. Но я могу сказать вам прямо сейчас, что если КАКОЕ-либо из этих значений будет заключено в кавычки, ваш SQL-запрос будет нарушен. Посмотрите SQL injection, посетитеhttp://bobby-tables.com и сделает ваш запрос немного менее рискованным.

Комментарии:

1. мм, это заключительный проект по теме, я попытаюсь прочитать об этом этим летом, но сейчас я должен закончить его, кстати, я пытаюсь, но это ничего мне не дает!

2. Затем возьмите сгенерированный запрос и запустите его вручную в mysql monitor. Несомненно, вы получите сообщения об ошибках. specailzation выглядит подозрительно.

Ответ №2:

getgetBirthDate казалось бы, неправильно (два get). Вам лучше использовать параметры и покончить с любой проблемой форматирования. Кроме того, вы были бы невосприимчивы к SQL-инъекции.