Ok, and think now figured out cause of issue with binding etc. - local mySQL
server was set to max_packet_length = 1M
And, that's 1Mb, so set it to match production server value of 999M, and
then, the following code works - seems like you should assign value to
parameter variable after binding it to statement:
$stmnt = $mysqliObj->prepare("update tbl_mysqli_test set b_test = ? where id
= 1;");
$stmnt->bind_param("b", $b);
$b = NULL;
$stmnt->send_long_data(0, $fB);
$stmnt->execute();
Did then also use mysqli_statement to retireve value and output it to
browser, to test, and it seemed to work, since could open saved/outputted
file in paint thereafter, and double check it's dimensions, etc.:
$mysqliObj = new mysqli("localhost", "root", "", "mysql");
$stmnt = $mysqliObj->prepare("select b_test from tbl_mysqli_test;");
$stmnt->execute();
$stmnt->bind_result($bOut);
$stmnt->fetch();
header("Content-Type: image/png");
header("Content-Disposition: attachment; filename=\"test.png\"");
echo $bOut;
$stmnt->close();
$mysqliObj->close();
Jacob Kruger
Blind Biker
Skype: BlindZA
'...fate had broken his body, but not his spirit...'
----- Original Message -----
From: "Jacob Kruger" <jacob@xxxxxxxxxxxxx>
To: <php-windows@xxxxxxxxxxxxx>
Sent: Tuesday, August 13, 2013 5:49 PM
Subject: Re: Performance/handling limit on
mysqli_real_escape_string() function?
Also, BTW, if I leave out the blob/binary data field, and use all of that
test code, apart from the send_long_data() call, it works fine with
integer and varchar fields.
Stay well
Jacob Kruger
Blind Biker
Skype: BlindZA
'...fate had broken his body, but not his spirit...'
----- Original Message -----
From: "Jacob Kruger" <jacob@xxxxxxxxxxxxx>
To: <php-windows@xxxxxxxxxxxxx>
Cc: "Pierre Joye" <pierre.php@xxxxxxxxx>
Sent: Tuesday, August 13, 2013 5:45 PM
Subject: Re: Performance/handling limit on
mysqli_real_escape_string() function?
And, here's the current test code:
//start code
$f = fopen("./candles.png", "rb");
$fB = fread($f, filesize("./candles.png"));
fclose($f);
$b = NULL;
$stmnt = $mysqliObj->prepare("update tbl_mysqli_test set b_test = ? where
id = 1;");
$stmnt->bind_param("b", $b);
$stmnt->send_long_data(0, $fB);
$stmnt->execute();
var_dump($stmnt);
//end code
And, the results of the error it outputs, and the results of the var_dump
function are the following:
Warning: Error while sending STMT_EXECUTE packet. PID=3372 in
C:\xampp\htdocs\mysqli\bind.php on line 21
object(mysqli_stmt)#2 (9) { ["affected_rows"]=> int(-1) ["insert_id"]=>
int(0) ["num_rows"]=> int(0) ["param_count"]=> int(1) ["field_count"]=>
int(0) ["errno"]=> int(2006) ["error"]=> string(26) "MySQL server has
gone away" ["sqlstate"]=> string(5) "HY000" ["id"]=> int(1)
Jacob Kruger
Blind Biker
Skype: BlindZA
'...fate had broken his body, but not his spirit...'
----- Original Message -----
From: "Jacob Kruger" <jacob@xxxxxxxxxxxxx>
To: <php-windows@xxxxxxxxxxxxx>
Cc: "Pierre Joye" <pierre.php@xxxxxxxxx>
Sent: Tuesday, August 13, 2013 9:28 AM
Subject: Re: Performance/handling limit on
mysqli_real_escape_string() function?
Thanks - looks pretty much exactly what I want to try achieve, so will
try modd'ing my code/script and see if works...<smile>
Also nice to maybe use the actual parameter binding for a change instead
of just building up sql statement strings using sprintf() etc. - know
better practice anyway.
Stay well
Jacob Kruger
Blind Biker
Skype: BlindZA
'...fate had broken his body, but not his spirit...'
----- Original Message -----
From: "Pierre Joye" <pierre.php@xxxxxxxxx>
To: "Jacob Kruger" <jacob@xxxxxxxxxxxxx>
Cc: "php-windows" <php-windows@xxxxxxxxxxxxx>
Sent: Tuesday, August 13, 2013 9:08 AM
Subject: Re: Performance/handling limit on
mysqli_real_escape_string() function?
hi!
On Mon, Aug 12, 2013 at 11:24 PM, Jacob Kruger <jacob@xxxxxxxxxxxxx>
wrote:
What with trying to store image data in mySQL database, I am saving the
results of fread() function carried out using the file handle returned
from fopen(), with the "rb" argument to tell it the file is for binary
reading.
Either way, for example, this specific image file is a 2.1Mb PNG file,
and mySQL server on my local, windows development machine seems to lock
up roundabout when I tell it to carry out the
mysqli_real_escape_string() function on the value of the variable that
now contains the data read from the physically uploaded file, and just
wondering if this could be something like a process overload, etc., and
whether should just try taking out the string real escaping for now, or
whether that's likely to cause problems, or should I try something like
splitting the file's data into more manageable size chunks, carry out
the string escaping on those chunks one at a time, with even a possible
form of pause inbetween, and then re-append them together before
writing them to the database, or should I maybe just implement at least
a form of file size limit, which might be an issue if the user will
insist on certain image sizes, resolutions, etc. etc.?
Thoughts/suggestions?
Not really windows specific, php-database could fit better for this
question but here is what you should do:
https://blogs.oracle.com/oswald/entry/php_s_mysqli_extension_storing
Cheers,
--
Pierre
@pierrejoye | http://www.libgd.org
--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php