@accountnujen

Как понять, на что триггерится sqlite3 при вставке текста?

код
exec("ffmpeg -i video.dav -c:v copy -c:a aac video.mp4 2>&1", $output, $return_var);
$GLOBALS['db']->exec("INSERT INTO logs (log) VALUES ('".json_encode($output)."')");

$output
Array
(
    [0] => ffmpeg version 4.4-essentials_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers
    [1] =>   built with gcc 10.2.0 (Rev6, Built by MSYS2 project)
    [2] =>   configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
    [3] =>   libavutil      56. 70.100 / 56. 70.100
    [4] =>   libavcodec     58.134.100 / 58.134.100
    [5] =>   libavformat    58. 76.100 / 58. 76.100
    [6] =>   libavdevice    58. 13.100 / 58. 13.100
    [7] =>   libavfilter     7.110.100 /  7.110.100
    [8] =>   libswscale      5.  9.100 /  5.  9.100
    [9] =>   libswresample   3.  9.100 /  3.  9.100
    [10] =>   libpostproc    55.  9.100 / 55.  9.100
    [11] => Guessed Channel Layout for Input Stream #0.0 : mono
    [12] => Input #0, dhav, from 'video.dav':
    [13] =>   Duration: 00:00:19.00, start: 1638896372.000000, bitrate: 2181 kb/s
    [14] =>   Stream #0:0: Audio: pcm_alaw, 8000 Hz, mono, s16, 64 kb/s
    [15] =>   Stream #0:1: Video: hevc (Main), yuv420p(tv), 1920x1080, 25 fps, 100 tbr, 1k tbn
    [16] => Stream mapping:
    [17] =>   Stream #0:1 -> #0:0 (copy)
    [18] =>   Stream #0:0 -> #0:1 (pcm_alaw (native) -> aac (native))
    [19] => Press [q] to stop, [?] for help
    [20] => [aac @ 000000b454a49800] Too many bits 8832.000000 > 6144 per frame requested, clamping to max
    [21] => Output #0, mp4, to 'video.mp4':
    [22] =>   Metadata:
    [23] =>     encoder         : Lavf58.76.100
    [24] =>   Stream #0:0: Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv), 1920x1080, q=2-31, 25 fps, 100 tbr, 16k tbn, 1k tbc
    [25] =>   Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 8000 Hz, mono, fltp, 48 kb/s
    [26] =>     Metadata:
    [27] =>       encoder         : Lavc58.134.100 aac
    [28] => frame=    0 fps=0.0 q=-1.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=  473 fps=0.0 q=-1.0 Lsize=    4961kB time=00:00:19.73 bitrate=2059.7kbits/s speed= 409x
    [29] => video:4860kB audio:94kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.140779%
    [30] => [aac @ 000000b454a49800] Qavg: 45098.902
)

ошибка
Warning: SQLite3::exec(): near "video": syntax error in C:\OpenServer\domains\localhost\globalcam.php on line 80
  • Вопрос задан
  • 60 просмотров
Решения вопроса 3
@galaxy
На одинарную кавычку, очевидно
[21] => Output #0, mp4, to 'video.mp4':
Ответ написан
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
экранируйте строки перед вставкой в запрос
https://www.php.net/manual/ru/pdo.quote.php

а ещё лучше всегда использовать подготовленные запросы (prepared statements) и навсегда забудьте о такого рода проблемах
https://www.php.net/manual/ru/pdo.prepared-stateme...
Ответ написан
Комментировать
@accountnujen Автор вопроса
$stmt = $GLOBALS['db']->prepare("INSERT INTO logs (log) VALUES (:data)");
$stmt->bindValue(':data', json_encode($output,JSON_UNESCAPED_UNICODE), SQLITE3_TEXT);
$stmt->execute();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы