Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] PDO - błąd składni
Forum PHP.pl > Forum > Przedszkole
troian
Witam, zakładam iż moja funkcja posiada jakiś błąd jednak nie bardzo wiem gdzie popełniłem błąd i dlaczego nie działa:
  1. $connect=new PDO('mysql:host='.host.';port='.port, user, pass, array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'));
  2. if(isset($_POST['START']))
  3. {
  4. $query = $connect->prepare("SELECT * FORM account.account WHERE login = ? AND password = PASSWORD(?) LIMIT 1");
  5. $result = $query->execute(array($_POST['login'], $_POST['pass'])) ? $query->fetch() : false;
  6. if($result)
  7. {
  8. echo 'jest user';
  9. }else{
  10. echo 'nie ma usera';
  11. }
  12. }


Czy ktoś może widzi błąd ?
Efekt błędu, zawartość $result jest pusta
kapslokk
FORM
Pyton_000
po $result

  1. $arr = $query->errorInfo();
  2. print_r($arr);
troian
To błąd podczas przepisywania kodu, oto oryginalny kod:
  1. public function start_login()
  2. {
  3. global $mysql, $massage_login;
  4. $connect = $mysql->connect();
  5. $massage_login = array();
  6. $table = Array(1 => 'id',2 => 'login',3 => 'email',4 => 'cash',5 => 'social_id',6 => 'silver_expire');
  7.  
  8. if((test_char($_POST['login']) && test_char($_POST['pass'])) && !empty($_POST['login']) && !empty($_POST['pass']))
  9. {
  10. $login = clear($_POST['login']);
  11. $pass = clear($_POST['pass']);
  12. $query = $connect->prepare("SELECT id,login,email,cash,social_id,silver_expire FROM ".account.".account WHERE login='?' AND password=password('?') LIMIT 1");
  13. $result = $query->execute(array($login,$pass)) ? $query->fetch() : false;
  14. if($result)
  15. {
  16. for( $x = 1; $x <= count($table); $x++ )
  17. {
  18. $_SESSION[$table[$x]] = $result[$table[$x]];
  19. }
  20. $_SESSION['time_login'] = strtotime(date("Y-m-d H:i:s"))+60*15;
  21. $massage_login[2] = '<meta http-equiv="Refresh" content="0; url='.url().'/konto" />';
  22. }else{
  23. $massage_login[1] = 'login-incorrect_data_account';
  24. }
  25. }else{
  26. $massage_login[1] = 'login-null_incorrect_data';
  27. }


po dodaniu print_r mam taki wynik : Array ( [0] => 00000 [1] => [2] => )
kapslokk
  1. FROM ".account.".account


Czemu w ten sposób? Trzymasz nazwę tabeli w jakiejś stałej? Wrzuć to co podał Pyton i sprawdź błędy.
troian
Cytat(kapslokk @ 7.09.2015, 10:06:17 ) *
  1. FROM ".account.".account


Czemu w ten sposób? Trzymasz nazwę tabeli w jakiejś stałej? Wrzuć to co podał Pyton i sprawdź błędy.


Wynik: Array ( [0] => 00000 [1] => [2] => )

tamto jest to definicja i jest prawidłowa gdyż przy poprzednim kodzie działało wszystko prawidłowo.
viking
Spróbuj sobie też wyświetlić http://fi2.php.net/manual/en/class.pdostat...ops.querystring z PDOStatement. Nie pamiętam już ale jaki był efekt kiedy dodawało się `?` wokół bindowanych parametrów?
troian
Jedyne co otrzymuje to : Array ( [0] => 00000 [1] => [2] => ) albo nulla
Pyton_000
nie '?' a ?
troian
Cytat(Pyton_000 @ 7.09.2015, 10:28:41 ) *
nie '?' a ?


o.O Danke smile.gif
Pyton_000
Ja wolę Zośkę tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.