używam funkcji rejestrującej użytkownika
function register_user($register_data) {
array_walk($register_data, 'array_sanitize');
$register_data['haslo'] = md5($register_data['haslo']);
$fields = implode(', ', array_keys($register_data));
$data = '\'' . implode('\', \'', $register_data). '\'';
$check = mysql_query("INSERT INTO users ($fields) VALUES ($data)");
echo mysql_error($check);
przy rejestracji tworzę tablicę której nazwy są odpowiednikiem nazw kolumn w tabeli, dzięki czemu w zapytaniu używam $fields jako pola i $data jako dane do wpisania.
$register_data = array(
'login' => $_POST['login'],
'haslo' => $_POST['haslo'],
'imie' => $_POST['imie'],
'nazwisko' => $_POST['nazwisko'],
'email' => $_POST['email'],
);
register_user($register_data);
i tu zaczyna sie problem. Mysql_error zwraca
supplied argument is not a valid MySQL
.
Zaś wpisanie tego w phpmyadmin, w sekcji kodu sql skutkuje dodaniem tych rekordów do bazy poprawnie.
Czytałem o składni INSERT INTO i wygląda ona w ten sposób
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
może ktoś mi podpowie w czym tkwi problem?
aha, w tej tabeli mam 2 pola więcej konkretnie id na 1 i aktywacja na ostatnim ale z tego co przeczytalem w manualu
korzystam w ten sposób z
Insert Data Only in Specified Columns
, więc nie rozumiem czemu problem sie pojawił.
przykładowe echo dla zapytania:
INSERT INTO users (login, haslo, imie, nazwisko, email) VALUES ('testlogin', '342df5b036b2f28184536820af6d1caf', 'Marcin', 'Zaniewski', '[email protected]')