Выбор в последний раз вставляет идентификатор

Я вставляю запись, и я хочу использовать идентификатор последней вставленной записи. Это - то, что я попробовал:

    $sql = 
    'INSERT INTO customer
(first_name,
last_name,
email,
password,
date_created,
dob,
gender,
customer_type)
VALUES(:first_name,
:last_name,
:email, 
:password, 
:date_created, 
:dob, 
:gender, 
:customer_type)' . ' SELECT LAST_INSERT_ID()' ;

Я получаю ошибку:
У Вас есть ошибка в Вашем синтаксисе SQL; проверьте руководство, которое соответствует Вашей серверной версии MySQL для правильного синтаксиса для использования близкого 'ИЗБРАННОГО LAST_INSERT_ID ()'. Кто-либо может показать мне, где моя ошибка?Спасибо!

5
задан chupinette 15 February 2010 в 14:40
поделиться

1 ответ

У вас в основном есть две опции: eiter абстрагирует всю логику, связанную с файловой системой, за IFileSystemService или использует Stubs от Microsoft, которая является

... облегченной структурой для .NET, которая обеспечивает тестовые заглушки. Для интерфейсов и незапечатанных классов создаются оболочки типа, которые можно легко настроить путем присоединения делегатов.

-121--3329676-

Я на самом деле склонен предложить другой ответ, чем «это неоднозначное» объяснение, предоставленное несколькими другими (хотя я согласен и с этим ответом):

Лично мне нравится минимизировать вложенность в мой код, как (по мне) чем более кудрявый код скобок, тем труднее ему становится следовать.

Поэтому я бы предпочел это (например):

public bool DoSomethingWithString(string s) {
    if (string.IsNullOrEmpty(s))
        return false;

    // here's the important code, not nested
}

этому:

public bool DoSomethingWithString(string s) {
    if (!string.IsNullOrEmpty(s)) {
        // here's the important code, nested
    } else {
        return false;
    }
}

Это довольно специфический сценарий (где нулевой / пустой ряд подсказывает немедленный выход) и явно не то, как метод, использующий IsStartOrEmpty , всегда будет структурирован; Но я думаю, что это довольно часто.

-121--1366975-

Извлечение mysql _ insert _ id ()

mysql_query($sql);
$id = mysql_insert_id();

Когда эта функция запускается после выполнения инструкции INSERT в команде mysql_query (), ее результатом будет идентификатор только что созданной строки.

12
ответ дан 13 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: