2015-05-02 3 views
0

Я создал функцию в JavaScript, которая преобразует файл 'image', выбранный пользователем в dataURI. Затем я передал его скрипту php методом POST. Проблема заключается в том, когда я пытаюсь сохранить эту информацию в MySQL следующим образом:Parsing dataURI изображение с JavaScript на PHP

$him = $_POST["him"]; 
$req = $pdo->prepare("INSERT INTO `cr`.`chercheur` 
        (`cin`, `nom`, `prenom`, `statut`, 
        `tel1`, `email`, `tof`, `etat`) 
       VALUES (?, ?, ?, ?, ?,?, ?, '0')"); 
$req->execute(array($cin,$nom,$prenom,$statu,$tel,$mail,$him)); 

Приведенная ниже ошибка.

Warning: PDOStatement::execute(): MySQL server has gone away in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\CR\module\compte\demande\dem_user.php on line 89

Warning: PDOStatement::execute(): Error reading result set's header in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\CR\module\compte\demande\dem_user.php on line 89 SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

+0

Как говорится, ваш сервер MySQL недоступен: см. Http://stackoverflow.com/questions/1644432/mysql-server-has-gone-away-in-exactly-60-seconds – sitilge

ответ

1

Проблема заключается в том что dataURI в стороне JavaScript использует «+» для использования concat и PHP ». поэтому решение должно заменить «+» на «.».

1

Возможно, это связано с тем, что размер изображений, которые вы пытаетесь сохранить, является достаточно большим для переполнения максимального размера пакета, настроенного для MySQL. Попробуйте изменить настройку max_allowed_packet в my.ini в вашей установочной папке MySQL (в разделе [mysqld]) на большее значение.

Вы можете проверить текущее значение (и если новое значение, которое вы установите вступило в силу) с помощью следующей SQL команды:

SHOW VARIABLES LIKE 'max_allowed_packet'; 

Смотрите эту страницу: http://dev.mysql.com/doc/refman/5.0/en/gone-away.html

You can also get these errors if you send a query to the server that is incorrect or too large. If mysqld receives a packet that is too large or out of order, it assumes that something has gone wrong with the client and closes the connection. If you need big queries (for example, if you are working with big BLOB columns), you can increase the query limit by setting the server's max_allowed_packet variable, which has a default value of 1MB. You may also need to increase the maximum packet size on the client end. More information on setting the packet size is given in Section B.5.2.10, “Packet Too Large”.

+0

его рабочий thx –

Смежные вопросы