Inserting BLOBs through PHP are always 0 bytes
After a lot of searching, I found the keyword, send_long_data.

$stmt = $conn-&gt;prepare($SQL);
$stmt-&gt;bind_param('ssb', $name, $desc, $image);
$stmt-&gt;send_long_data(2, $image);

$stmt-&gt;execute();


A simple fix if you know the magic word.