2016-08-03 5 views
-3

Я знаю, что на этот вопрос был дан ответ много раз, но просто не могу заставить его работать в моем существующем коде. Простите меня за то, что я дурак. Мой вопрос: мне просто нужно получить индексированное и автоматически увеличивающееся значение client_id при создании новой записи, поэтому я могу отправить ее новому пользователю по электронной почте вместе со своим паролем, чтобы они могли войти в свою учетную запись. Вот мой код и спасибо за любую помощь. Я также понимаю, что я должен преобразовать из MySQL в Mysqli:PHP Получить идентификатор последней введенной записи

$conn = mysql_connect($servername, $username, $password, $dbname); 

if (!$conn) { die('Could not connect: ' . mysql_error()); } 

mysql_select_db($dbname,$conn); 

$sql="INSERT INTO ricks_inserts (companyname, contact, email) 

VALUES ('$_POST[companyname]','$_POST[contact],'$_POST[email]')"; 

$id = mysql_insert_id(); "My actual variable in my table is called client_id" 

if (!mysql_query($sql,$conn)) 
{ 
die('Error: ' . mysql_error()); 
}echo "<br />"; 

$message= <<<EOD 
Client Id:$_POST[client_id] 
Email: $_POST[email] 
Company: $_POST[companyname] 
Contact: $_POST[contact] 
EOD; 
+2

Вы не можете получить вставки ID до * после * вы выполняете свой запрос на вставку. У Kinda есть смысл, нет? –

+2

Вы можете использовать SQL-инъекции с этим кодом. – chris85

+0

Можем ли мы по-прежнему говорить об инъекции? – Strawberry

ответ

-1

может быть, вы можете попробовать эту версию один MySQL

$conn = mysql_connect($servername, $username, $password, $dbname); 

if (!$conn) { die('Could not connect: ' . mysql_error()); } 

mysql_select_db($dbname,$conn); 

$companyname = mysql_real_escape_string($_POST['companyname']); 
$contact = mysql_real_escape_string($_POST['contact']); 
$email = mysql_real_escape_string($_POST['email']); 

$sql="INSERT INTO ricks_inserts (companyname, contact, email) 

VALUES ('".$companyname."','".$contact."','".$email."') " or die(mysql_errno()); 

if (mysql_query($sql)) { 
    $last_id = mysql_insert_id(); 
    echo "New record created successfully. Last inserted ID is: " . $last_id; 
} else { 
    echo "Error: " . $sql . "<br>" . mysql_error(); 
} 

$message= <<<EOD 
Client Id:$_POST[client_id] 
Email: $_POST[email] 
Company: $_POST[companyname] 
Contact: $_POST[contact] 
EOD; 

MySQLi версия

 <?php 
$conn = mysqli_connect($servername, $username, $password, $dbname); 

if (!$conn) { die('Could not connect: ' . mysqli_error($conn)); } 

mysqli_select_db($conn,$dbname); 

$companyname = mysqli_real_escape_string ($conn,$_POST['companyname']); 
$contact = mysqli_real_escape_string ($conn,$_POST['contact']); 
$email = mysqli_real_escape_string ($conn,$_POST['email']); 

$sql="INSERT INTO ricks_inserts (companyname, contact, email) 

VALUES ('".$companyname."','".$contact."','".$email."') " or die(mysqli_errno($conn)); 

if (mysqli_query($conn,$sql)) { 
    $last_id = mysqli_insert_id($conn); 
    echo "New record created successfully. Last inserted ID is: " . $last_id; 
} else { 
    echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
} 

$message= <<<EOD 
Client Id:$_POST[client_id] 
Email: $_POST[email] 
Company: $_POST[companyname] 
Contact: $_POST[contact] 
EOD; 

?> 
+1

. Пожалуйста, [больше не используйте расширение mysql_] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). Он был удален из PHP – Machavity

+0

@Machavity в настоящее время я использую расширение mysqli. Я просто показывал пример любым способом, спасибо за вашу заметку – mohammed

Смежные вопросы