MySQL по сравнению с MySQLi при использовании [закрытого] PHP

variable "ipcidr" {
  default = "10.70.32.0/24"
}

output "new_ipcidr" {
  value = "${join("/", list(cidrhost(cidrsubnet(var.ipcidr, 1, 0), -4), element(split("/", cidrsubnet(var.ipcidr, 1, 0)), 1)))}"
}
$ terraform init && terraform apply
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

new_ipcidr = 10.70.32.124/25

Чтобы сделать эту работу для списка, выходное значение должно быть введено в ресурс с использованием подхода count и count.index для цикла. Например.

resource "aws_subnet" "main" {
  count      = "${length(var.ipcidrs)}"
  vpc_id     = "${aws_vpc.main.id}"
  cidr_block = "${join("/", list(cidrhost(cidrsubnet(var.ipcidrs[count.index], 1, 0), -4), element(split("/", cidrsubnet(var.ipcidrs[count.index], 1, 0)), 1)))}"
}
161
задан Dharman 27 October 2019 в 11:39
поделиться

5 ответов

Если Вы взглянули на MySQL Improved Extension Overview , он должен сказать Вам все, что необходимо знать о различиях между двумя.

основные полезные функции:

  • Объектно-ориентированный интерфейс
  • поддержка подготовленных операторов
  • поддержка нескольких операторов
  • поддержка транзакций
  • расширенные возможности отладки
  • встроенная поддержка сервера.
109
ответ дан Tharif 23 November 2019 в 21:27
поделиться

Я отказался от использования mysqli. Это просто слишком нестабильно. У меня были запросы, которые разрушают PHP, использующий mysqli, но работают просто великолепно с mysql пакетом. Также mysqli отказывает на столбцах LONGTEXT . Эта ошибка была повышена в различных формах с тех пор, по крайней мере, 2005 и остается поврежденной . Я честно хотел бы использовать подготовленные операторы, но mysqli просто не достаточно надежен (и никто, кажется, не потрудился фиксировать его). Если Вы действительно хотите подготовленные операторы, идут с PDO.

15
ответ дан cletus 23 November 2019 в 21:27
поделиться

MySQLi поддерживает улучшенный MySQL. Это - объектно-ориентированный интерфейс к привязке MySQL, который делает вещи легче использовать. Это также предлагает поддержку подготовленных операторов (которые являются очень полезны). Если Вы находитесь на использовании PHP 5 MySQLi.

12
ответ дан Ross 23 November 2019 в 21:27
поделиться

То, что лучше, является PDO; это - менее неработоспособный интерфейс и также обеспечивает те же функции как MySQLi.

Используя подготовленные операторы хорошо, потому что это устраняет возможности Внедрения SQL; использование серверной стороны подготовилось, операторы плохо, потому что это увеличивает число распространений в прямом и обратном направлениях.

5
ответ дан MarkR 23 November 2019 в 21:27
поделиться

для меня подготовленные операторы являются необходимой функцией. более точно, привязка параметров (который только работает над подготовленными операторами). это - единственный действительно нормальный способ вставить строки в команды SQL. я действительно не доверяю функциям 'выхода'. соединение с БД является протоколом двоичной синхронной передачи данных, почему использование ограниченный ASCII подпротокол для параметров?

3
ответ дан Javier 23 November 2019 в 21:27
поделиться
Другие вопросы по тегам:

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