PHP/MySQL вставляют строку, затем получают 'идентификатор'

Из того, что я собрал, это означает, что служба mysql (mysqld) не работает.

  • Сначала убедитесь, что он установлен в качестве службы Windows: Запустите

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --install

из командной строки.

  • Далее запустите его:

services.msc > MySQL > start

Если перезапуск не удается, вы можете выполнить следующие действия:

  • откройте командную строку как администратор: cmd.exe > open as administrator
  • запустите "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld" --verbose

, он должен завершиться ошибкой и поместит журнал ошибок в каталог с именем данные в C: \ Program Files \ MySQL \ MysSQL Server 5.7 \ . Если по какой-то причине не удается создать данные , сделайте это вручную в этом каталоге и повторите попытку. Если вы можете выяснить, чего не хватает в том, что находится в этом журнале, тогда хорошо, все готово.

Если вам все еще не повезло, вот как я это сделал:

  • goto C:\ProgramData\MySQL и скопируйте файл с именем my.ini в C:\Windows\

  • попробуйте снова запустить службу из командной строки: "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld" --verbose

Если не отображается ошибка, чем запуск службы был успешным. Если это все еще не работает, то удалите my.ini , который вы только что скопировали из C:\Windows, и снова запустите службу из командной строки.

это должно работать сейчас

188
задан Peter Mortensen 9 May 2015 в 02:21
поделиться

2 ответа

$link = mysqli_connect('127.0.0.1', 'my_user', 'my_pass', 'my_db');
mysqli_query($link, "INSERT INTO mytable (1, 2, 3, 'blah')");
$id = mysqli_insert_id($link);

См. mysqli_insert_id () .

Что бы вы ни делали, не вставляйте, а затем выполняйте " SELECT MAX (id) FROM mytable ". Как вы говорите, это состояние гонки, и в этом нет необходимости. mysqli_insert_id () уже имеет эту функцию.

251
ответ дан 23 November 2019 в 05:43
поделиться

Функция MySQL LAST_INSERT_ID () делает именно то, что вам нужно: она извлекает идентификатор, который был вставлен во время этого сеанса . Таким образом, его безопасно использовать, даже если есть другие процессы (например, другие люди, вызывающие тот же сценарий), вставляющие значения в ту же таблицу.

Функция PHP mysql_insert_id () делает то же самое. как вызывающий SELECT LAST_INSERT_ID () с mysql_query () .

39
ответ дан 23 November 2019 в 05:43
поделиться
Другие вопросы по тегам:

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