jensej 2 Zgłoś post Napisano Wrzesień 29, 2013 Witam, da się jakoś wyświetlić błąd zapytania mysql, które raz się wykonuje a raz nie.? Nie wyświetla żadnych błędów. if(empty($_POST) == false && empty($errors) == true){ $id = rand(1,9999999); $register_data = array( 'id' => $id, 'name' => $_POST['username'], 'password' => $_POST['password'], 'type' => 10, 'premdays' => 20, 'page_acces' => 0, 'lastday' => 30, 'email' => $_POST['email'], 'creation' => date('Y.m.d') ); register_user($register_data); header('Location: register.php?success'); exit(); } elseif(empty($errors) == false) { echo output_errors($errors); } tutaj funkcja: function register_user($register_data) { array_walk($register_data, 'array_sanitize'); $register_data['password'] = md5($register_data['password']); $fields = '`' . implode('`, `', array_keys($register_data)) . '`'; $data = '\'' . implode('\', \'', $register_data) . '\''; $dodane = mysql_query("INSERT INTO `accounts` ($fields) VALUES ($data)"); } Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Wrzesień 29, 2013 $dodane = mysql_query("INSERT INTO `accounts` ($fields) VALUES ($data)"); zmień na $dodane = mysql_query("INSERT INTO `accounts` ($fields) VALUES ($data)") or die(mysql_error()); Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Wrzesień 29, 2013 $id = rand(1,9999999); Losowanie ID i próbowanie go wstawić do bazy bez sprawdzenia czy coś jest pod tym ID to wyjątkowo słaby pomysł. Od tego jest autoincerement w mysql żeby tak nie robić. 2 Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Wrzesień 30, 2013 Dokładnie. Jak już stosujesz takie dziwne praktyki to przynajmniej sprawdzaj poprzez select where id='wylosowane id', bo wstawianie na ślepo niczemu dobremu nie wróży. Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Październik 1, 2013 Losowanie ID i próbowanie go wstawić do bazy bez sprawdzenia czy coś jest pod tym ID to wyjątkowo słaby pomysł. Od tego jest autoincerement w mysql żeby tak nie robić. rozumiem, na większą skalę to się nie sprawdza, zapomniałem że wylosowana liczba może się powtórzyć. Jeśli ustawię autoincorement i usunę losowanie, to powinno automaycznie dodawać id ? Udostępnij ten post Link to postu Udostępnij na innych stronach
kamillo1888 0 Zgłoś post Napisano Październik 9, 2013 A w razie coś jest jeszcze: http://www.electrictoolbox.com/mysql-insert-ignore/ Natomiast błędu to ci on nie zwróci. Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Styczeń 26, 2014 witam, może ktoś mi wytłumaczyć dlaczego owe zapytanie się nie dodaje. $smtp = $db_conn->prepare('INSERT INTO users (login, password, email, type, date) VALUES (:login, :password, :email, :type, NOW())'); $smtp->execute(array( ':login' => $login, ':password' => $pass, ':email' => $email, ':type' => 0, )); Nie wyświetla błędów. Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Styczeń 26, 2014 Najpierw zobacz jakie z tego jest budowane zapytanie i spróbuj je wykonać w phpmyadmin. Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Styczeń 26, 2014 moje początki z pdo, wklepałem w zakładce SQL : INSERT INTO users (login, password, email, type, date) VALUES ('lol', 'lol', 'lol', 'lol, NOW()) i zadziałało. A skrypcie już niechce, Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 26, 2014 $smtp = $db_conn->prepare('INSERT INTO users (login, password, email, type, date) VALUES (:login, :password, :email, :type, NOW())'); $smtp->execute(array( ':login' => $login, ':password' => $pass, ':email' => $email, ':type' => 0, )); if (!$smtp) { $er = $smtp -> errorInfo(); print_r($er); } A teraz wyświetla? Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Styczeń 26, 2014 @up niestety nie Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 26, 2014 $sql = "INSERT INTO users (login, password, email, type, date) VALUES ('".$login."', '".$pass."', '".$email."', '0', NOW())"; if ($db_conn -> query($sql)) { $er = $db_conn -> errorInfo(); print_r($er); } Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Styczeń 26, 2014 nie działa.. ani nie wyświetla błędu. Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 26, 2014 (edytowany) Pokaż nam strukture tej tabeli. Najlepiej screen Wkradł się błąd: $sql = "INSERT INTO users (login, password, email, type, date) VALUES ('".$login."', '".$pass."', '".$email."', '0', NOW())"; if (!$db_conn -> query($sql)) { $er = $db_conn -> errorInfo(); print_r($er); } Edytowano Styczeń 26, 2014 przez wlodziu (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Styczeń 26, 2014 Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 26, 2014 Zobacz mój wcześniejszy post, poprawiłęm bo był mały błąd. Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Styczeń 26, 2014 jest błąd. Array ( [0] => 3D000 [1] => 1046 [2] => No database selected ) Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 26, 2014 Przy połączeniu nie wybrałeś bazy danych. Jak nie mozesz sobie poradzić to pokaż kod połączenia. Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Styczeń 26, 2014 (edytowany) <?php try { $db_conn = new PDO('mysql:host=localhost;dbname:minecra1_forum', 'mi_admin', 'vysAD');} catch(PDOException $e){ echo "Nie można nawiązać połączenia z bazą danych"; } ?> Edytowano Styczeń 26, 2014 przez jensej (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 26, 2014 minecra1_forum to na pewno nazwa bazy danych? Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Styczeń 26, 2014 dokładnie tak. Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 26, 2014 <?php try { $db_conn = new PDO('mysql:dbname=minecra1_forum;host=localhost;', 'mi_admin', 'vysAD'); } catch(PDOException $e){ echo "Nie można nawiązać połączenia z bazą danych"; } ?> Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Styczeń 26, 2014 @@up, wielkie dzięki pozdrawiam Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Styczeń 26, 2014 (edytowany) myślę, że się nie obrazicie jak będe tutaj pytał troszkę xD require 'core/database/connect.php'; //baza class user { public $data; public function getData($login, $pass) { if ($login == '') $login = $_SESSION['login']; if ($pass == '') $pass = $_SESSION['pass']; $zap = $db_conn->prepare("SELECT * FROM users WHERE login=? AND password=?"); $zap->execute(array($login, $pass)); $data = $zap->fetchAll(PDO::FETCH_ASSOC); return $data; } $user = getData($login, $pass); Fatal error: Call to undefined function getData() in /home/minecra1/domains/prostacy.pl/public_html/login.php on line 39 plik z klasa jest w class/user.class.php Edytowano Styczeń 26, 2014 przez jensej (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Pitu 160 Zgłoś post Napisano Styczeń 26, 2014 (edytowany) $user = new user(); $user->getData($login, $pass); W ogóle klasa jest bez sensu, poczytaj trochę o OOP i wzorcach. Edytowano Styczeń 26, 2014 przez Pitu (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach