$product_list = [30, 32, 38];
$query = " `productId` in (".join(', ', array_map(function($item){return int $item;}, $product_list)).")";
$sql = "SELECT * FROM `products` WHERE ".$query;
// Должен получиться запрос:
// SELECT * FROM `products` WHERE `productId` in (30, 32, 38)
// array_map тут нужен для принудительного перевода всех значений в числовой вид, обеспечив тем самым экранирование.
$query = $db->query($sql);
$products_data = $query->fetchAll(\PDO::FETCH_ASSOC);
$product_list = [30, 32, 38];
$in_params = [];
for($i = 0; $i < count($product_list), $i++)
$in_params[':productId'.$i] = $product_list[$i];
// получили массив: $in_params = [':productId0' => 30, ':productId1' => 32, ':productId0' => 38];
$placeholder_string = join(', ', array_keys($in_params));
// получили строку $placeholder_string = ":productId0, :productId1, :productId2";
$sql = "SELECT * FROM `products` WHERE `productId` in (".$placeholder_string.")";
// Должен получиться запрос:
// SELECT * FROM `products` WHERE `productId` in (:productId0, :productId1, :productId2)
$query = $db->prepare($sql);
$query->execute($in_params); // in_params в точности в таком формате, который нужен для связки параметров productId
$products_data = $query->fetchAll(\PDO::FETCH_ASSOC);
$content = hex2bin(str_replace(" ","", "25 50 44 46 2D 31 2E 35 0D 0A 25 B5 B5 B5 B5 0D 0A 31 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70 65 2F 43 61 74 61 6C 6F 67 2F 50 61 67 65 73 20 32 20 30 20 52 2F 4C 61 6E 67 28 72 75 2D 52 55 29 20 2F 53 74 72 75 63 74 54 72 65 65 52 6F 6F 74 20 32 32 20 30 20 52 2F 4D 61 72 6B 49 6E 66 6F 3C 3C 2F 4D 61 72 6B 65 64 20 74 72 75 65 3E 3E 3E 3E 0D 0A 65 6E 64 6F 62 6A 0D 0A 32 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70 65 2F 50 61 67 65 73 2F 43 6F 75 6E 74 20 31 2F 4B 69 64 73 5B 20 33 20 30 20 52 5D 20 3E 3E 0D 0A 65 6E 64 6F 62 6A 0D 0A 33 20 30 20 6F 62 6A 0D 0A 3C 3C 2F 54 79 70 65 2F 50 61 67 65 2F 50 61 72 65 6E 74 20 32 20 30 20 52 2F 52 65 73 6F 75 72 63 65 73 3C 3C 2F 45 78 74 47 53 74 61 74 65 3C 3C 2F 47 53 35 20 35 20 30 20 52 2F 47 53 36 20 36 20"));
// если записать в каталог сервера, то так:
file_put_contents("file.pdf", $content);
// если отдать контент браузеру, то так:
header("Content-type:application/pdf");
header("Content-Disposition:inline;filename='file.pdf");
echo $content;
echo $datetime->format('F j, Y');
<?php
error_reporting(E_ALL); // репорт ошибок в файл error_log
ini_set('display_errors', 'On'); // вывод сообщения об ошибке
var_dump($_POST);
var_dump($pdo->errorInfo());
if(array_key_exists('PATH_INFO', $_SERVER)) // проверяем наличие ключа
{
echo $_SERVER['PATH_INFO']; // что-то делаем с элементом массива по ключу, например, печатаем.
}
else
{
// что-то делаем, когда ключа нет
}
по ключу "qwe" быстро получать "num"
писать скрипт, который будет вытаскивать по запросу необходимые записи, далее для каждой записи разбирать сер.массив, находить нужное значение, изменять его и затем записывать новый массив с изменённым значением в БД
if (isset($_FILES["uploaded_file"]) && !empty($_FILES["uploaded_file"]["name"]) && is_array($_FILES["uploaded_file"]["name"]) && count($_FILES["uploaded_file"]["name"]) > 0)
{
for($i = 0; $i < count($_FILES["uploaded_file"]["name"]); $i++)
{
$file_name = $_FILES['uploaded_file']['name'][$i];
$file_size = $_FILES['uploaded_file']['size'][$i];
$file_tmp = $_FILES['uploaded_file']['tmp_name'][$i];
$file_type = $_FILES['uploaded_file']['type'][$i];
$file_ext = strtolower(end(explode('.', $_FILES['uploaded_file']['name'][$i])));
...
}
}
/* создание подготавливаемого запроса */
$stmt = $mysql->prepare("select sum(c.`Price`) as price_sum
from `dogovor` d
join `catalog` c on c.`Id_Product` = d.`Id_Product`
where d.`id_client` = ?");
/* связывание параметров с метками */
$stmt->bind_param("i", $id_client);
/* выполнение запроса */
$result = $stmt->execute();
/* выборка результатов */
$row = $result->fetch_accos();
if($row)
{
echo 'Общая стоимость всех заказов клиента: '.$row['price_sum'];
}
else
{
echo 'Запрос не дал результата!';
}
select A.*
from (SELECT `date`, `name`, phone, count() over (partition by phone) phone_count
FROM `myusers`
) A
where A.phone_count > 1
ORDER BY date ASC
select `date`, `name`, phone, p.phone_count
from `myusers` as mu
join (SELECT phone, count(*) phone_count
FROM `myusers`
group by phone) p on p.phone = mu.phone
where p.phone_count > 1
ORDER BY mu.date ASC
$result = curl_exec($ch);
$info = curl_getinfo($ch);
if($info['http_code'] != 200)
{
// по http не получили статус 200, значит, пишем репорт об этом
}
curl_close($ch);
$result = curl_exec($ch);
$curl_error_number = curl_errno($ch);
if($curl_error_number)
{
$info = curl_getinfo($ch);
// что-то случилось с соединением в целом, пишем репорт об этом со сведениями $info
}
curl_close($ch);
<?php foreach ($_SESSION['arr'] as $gorod) : ?>
<tr>
<td><?php echo $gorod['id']; ?></td>
<td><?php echo $gorod['name']; ?></td>
<td><?php echo $gorod['area']; ?></td>
<td><?php echo $gorod['population']; ?></td>
</tr>
<?php endforeach; ?>
} else if (empty($name)) {
$mysql = "SELECT * FROM city";
<?php
// список допустимых значений переменной $channel
$allow_channel_list = ["svm.sport" , "svm.music" , "svm.loop"];
// значение по умолчанию
$default_channel = "svm.best";
// если в GET-параметрах присутствует ключ channel и значение по ключу входит в список допустимых значений...
if(isset($_GET['channel']) && in_array($_GET['channel'], $allow_channel_list))
{
// ..., то переменная равняется этому значению
$channel = $_GET['channel'];
}
else // иначе, берем значение по умолчанию
$channel = $default_channel;
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $channel; ?></title>
<!-- ... БЛА-БЛА-БЛА -->
<?php
// <!-- ... БЛА-БЛА-БЛА -->
?>
test.php?channel=svm.best
2 + 8 = ?