Re: Performance/handling limit on mysqli_real_escape_string() function?
"Jacob Kruger" <[email protected]>
| Newsgroups | gmane.comp.php.windows |
|---|---|
| Message-ID | <18913BD66D1C46FCA4D9FF370573CDBB@JacobPC> |
And, again, however, for whatever reason, although it's reading full length of image file into variable, for whatever reason, it's only saving like 64Kb of data to server - no errors being generated, etc., so assume there's some or other automatic limit can't find cause/mention of/for, etc. Stay well Jacob Kruger Blind Biker Skype: BlindZA '...fate had broken his body, but not his spirit...' ----- Original Message ----- From: "Jacob Kruger" <[email protected]> To: <[email protected]> Sent: Tuesday, August 13, 2013 7:03 PM Subject: Re: [PHP-WIN] Performance/handling limit on mysqli_real_escape_string() function? > 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" <[email protected]> > To: <[email protected]> > Sent: Tuesday, August 13, 2013 5:49 PM > Subject: Re: [PHP-WIN] 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" <[email protected]> >> To: <[email protected]> >> Cc: "Pierre Joye" <[email protected]> >> Sent: Tuesday, August 13, 2013 5:45 PM >> Subject: Re: [PHP-WIN] 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" <[email protected]> >>> To: <[email protected]> >>> Cc: "Pierre Joye" <[email protected]> >>> Sent: Tuesday, August 13, 2013 9:28 AM >>> Subject: Re: [PHP-WIN] 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" <[email protected]> >>>> To: "Jacob Kruger" <[email protected]> >>>> Cc: "php-windows" <[email protected]> >>>> Sent: Tuesday, August 13, 2013 9:08 AM >>>> Subject: Re: [PHP-WIN] Performance/handling limit on >>>> mysqli_real_escape_string() function? >>>> >>>> >>>> hi! >>>> >>>> On Mon, Aug 12, 2013 at 11:24 PM, Jacob Kruger <[email protected]> >>>> 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 > > -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php