2014-01-29 2 views
0

Я пытаюсь изменить код php/mysql с 2008 года, чтобы использовать текущие стандарты. Я довольно новичок в php/mysql, поэтому я борюсь, несмотря на множество исследований.Получение идентификатора с помощью подготовленного оператора

$sql_email_check = $db->prepare("SELECT `id` FROM `users` WHERE `email` = ? LIMIT 1"); 
$sql_email_check->bind_param('i', $email); 
$sql_email_check->execute(); 

echo "<pre>". print_r($sql_email_check, true)."<-- sql email check</pre>"; 

Я пытаюсь получить идентификатор, чтобы впоследствии использовать его в своем коде.

Мой вопрос (я так смущен, может быть, я задаю неправильный вопрос), как мне отобразить/захватить идентификатор? Я новичок в этом, поэтому, если я что-то делаю, код мудрый, это не соответствует стандартам, пожалуйста, дайте мне знать.

+0

http://php.net/manual/en/pdo.lastinsertid.php и/или http://php.net/manual/en/mysqli.insert-id .php –

+1

Если ваш запрос хорош и у вас есть данные в столбце 'email', попробуйте добавить это' while ($ row = $ sql_email_check-> fetch_assoc()) {$ row ['email']; } 'после' $ sql_email_check-> execute(); '(это было бы для вашего вопроса' display'). Вам нужно пройти через петлю, чтобы показать/эхо вашу запись (ы). –

+1

'$ sql_email_check-> bind_param ('i', $ email);' '' $ email' действительно int? Или это должно быть '$ sql_email_check-> bind_param ('s', $ email);'? –

ответ

0

Попробуйте это:

$sql_email_check = $db->prepare("SELECT `id` FROM `users` WHERE `email` = ? LIMIT 1"); 
$sql_email_check->bind_param('i', $email); 
$sql_email_check->execute(); 
$sec = sql_email_check->get_result(); 
$row = $sec->fetch_assoc(); 

$id = $row['id'];  

echo $id; 
Смежные вопросы