$stmt = mysqli_prepare($connect, "INSERT INTO `bd` (`id`, `name`, `tel`) VALUES (NULL, ?, ?)");
mysqli_stmt_execute($stmt, [$_POST['name'], $_POST['tel']]);
function prepared_query($mysqli, $sql, $params, $types = "")
{
$types = $types ?: str_repeat("s", count($params));
$stmt = $mysqli->prepare($sql);
$stmt->bind_param($types, ...$params);
$stmt->execute();
return $stmt;
}
$sql = "INSERT INTO `bd` (`name`, `tel`) VALUES (?,?)";
prepared_query($connect, $sql, [$_POST['name'], $_POST['tel']]);
какой язык более универсальный для системного/сетевого администратора?
К примеру написать бота в телеграмм, организовать вывод показателей с серверов на сайт, и запилить минимальное приложение для мониторинга под windows/android, не заморачиваясь над фронт-ендом.
$x = is_good();
if($x and $y>0)
Будет ли этот запрос быстрее работать, если для столбца `time` есть индекс?Это покажет EXPLAIN, а ещё лучше - само выполнение запроса с индексом и без него. Скорее всего - будет.
Вообще насколько целесообразно делать индексы на все столбцы, которые есть в условии выборки и в которых много уникальных значений?В этом и заключается смысл индексации.
Давайте сделаем что-нибудь полезное. К примеру, определим, какой браузер использует тот, кто смотрит в данный момент нашу страницу. Для этого мы проверим строку с именем браузера, посылаемую нам в HTTP-запросе. Эта информация хранится в переменной. Переменные в PHP всегда предваряются знаком доллара. Интересующая нас в данный момент переменная называется $_SERVER['HTTP_USER_AGENT'].
число 0755, волшебным образом, превращается в 493Никаким не волшебным, а самым обычным и описанным в документации.
Обратите внимание, что аргумент permissions необходимо задавать в виде восьмеричного числа (первой цифрой должен быть ноль).https://www.php.net/manual/ru/function.mkdir.php
Есть вариант хранить как строку "1,2,3,4"
мне надо 100 записей в бд для 10 id'шников
как-то не правильно это все
TransformStream
. ReadableStream
. Единственное отличие, что TransformStream
"ленивый". Т.е. если закомментировать await newResponse.blob();
onProgress
не будет вызываться, хотя данные были загружены.const response = await fetch("https://fetch-progress.anthum.com/30kbps/images/sunrise-baseline.jpg");
total.value = parseInt(response.headers.get("content-length")) || 0;
function onProgress(chunk) {
loaded.value += chunk.length;
}
const ts = new TransformStream({
transform(chunk, controller) {
onProgress(chunk);
controller.enqueue(chunk);
},
});
response.body.pipeThrough(ts);
const newResponse = new Response(ts.readable);
const blob = await newResponse.blob();
"content-length"
может отсутствовать. "content-encoding"
, который, к слову, по-умолчанию будет недоступен для кода при кросс-доменных запросах."content-encoding"
в "content-length"
значение всегда указано для сжатого респонса, а в коллбеке будут уже не сжатые данные. Т.е. loaded
в таком случае будет больше значения total
("content-length"
)ReadableStream
:const reader = response.body.getReader();
const readableStream = new ReadableStream({
async start(controller) {
while (true) {
const {done, value} = await reader.read();
if (done) { break; }
onProgress(value);
controller.enqueue(value);
}
controller.close();
reader.releaseLock();
},
cancel() {
void reader.cancel();
}
});
const newResponse = new Response(readableStream);