2015-03-22 2 views
0

Как я могу получить автоматически увеличиваемый идентификатор пользователя запроса mysql. Я попробовал его с mysql_insert_id(), но он не будет работать.Получить auto increment id mysql

if(isset($_COOKIE['username'])){ 
    $cookie = $_COOKIE['username']; 
    header('Location: http://' . $_SERVER['HTTP_HOST'] . '/source/main.html'); 
} 
else{ 
    $message = array(); 
    if (!empty($_POST)) { 
     if (
      empty($_POST['f']['username']) 

     ) { 
      $message['error'] = 'Es wurden nicht alle Felder ausgefüllt.'; 
     } 
     $mysqli = @new mysqli('localhost', 'user', 'pw', 'loginsystem'); 
      if ($mysqli->connect_error) { 
       $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; 
      } 
      $query = sprintf(
       "INSERT INTO users (username) 
       SELECT * FROM (SELECT '%s') as new_user 
       WHERE NOT EXISTS (
        SELECT username FROM users WHERE username = '%s' 
       ) LIMIT 1;", 
       $mysqli->real_escape_string($_POST['f']['username']), 

       $mysqli->real_escape_string($_POST['f']['username']) 

      ); 
      $id = mysql_insert_id(); 

      $mysqli->query($query); 
      if ($mysqli->affected_rows == 1) { 
       $message['success'] = 'Neuer Benutzer (' . htmlspecialchars($_POST['f']['username']) . ') wurde angelegt, <a href="login.php">weiter zur Anmeldung</a>.'; 
       header('Location: http://' . $_SERVER['HTTP_HOST'] . '/source/main.html'); 
      } else { 

      } 
      $t = time() + 60; //* 60 * 24 * 1000; 
      setcookie("username", $_POST['f']['username'], $t); 
      setcookie("userid", $id , $t); 
      // cookie setzen 
      $mysqli->close(); 
     } 
} 
?> 

ответ

0

Вы используете mysqli не mysql.

попробуйте $id = $mysqli->insert_id; после запроса не ранее.

+0

спасибо! это работает :) – brabus85

+0

@ geee123 Нет проблем. Если вы считаете ответ полезным, нажмите стрелку рядом с комментарием. Благодаря! –