Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将dataURI图像从JavaScript解析为PHP_Javascript_Php_Mysql_Pdo - Fatal编程技术网

将dataURI图像从JavaScript解析为PHP

将dataURI图像从JavaScript解析为PHP,javascript,php,mysql,pdo,Javascript,Php,Mysql,Pdo,我在JavaScript中创建了一个函数,用于将用户选择的“图像”文件转换为dataURI。然后我通过POST方法将其传递给php脚本。问题是当我尝试将这些信息保存到MySQL时,如下所示 $him = $_POST["him"]; $req = $pdo->prepare("INSERT INTO `cr`.`chercheur` (`cin`, `nom`, `prenom`, `statut`, `

我在JavaScript中创建了一个函数,用于将用户选择的“图像”文件转换为dataURI。然后我通过POST方法将其传递给php脚本。问题是当我尝试将这些信息保存到MySQL时,如下所示

$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));
我在下面得到一个错误

警告:PDOStatement::execute():MySQL服务器已在中消失 C:\程序文件 (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\CR\module\compte\demande\dem\u user.php 在线89

警告:PDOStatement::execute():在中读取结果集的标头时出错 C:\程序文件 (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\CR\module\compte\demande\dem\u user.php 第89行SQLSTATE[HY000]:一般错误:2006 MySQL服务器已经消失 远离


这可能是因为您试图存储的图像的大小大到足以溢出为MySQL配置的最大数据包大小。尝试将MySQL安装文件夹(在
[mysqld]
部分下)的
my.ini
中的
max\u allowed\u packet
设置更改为更大的值

可以使用以下SQL命令检查当前值(以及设置的新值是否生效):

SHOW VARIABLES LIKE 'max_allowed_packet';
见本页:

如果向服务器发送的查询不正确或太大,也会出现这些错误。如果mysqld接收到一个太大或无序的数据包,它会假定客户端出现了问题,并关闭连接。如果需要大查询(例如,如果使用大BLOB列),可以通过设置服务器的max_allowed_packet变量来增加查询限制,该变量的默认值为1MB。您可能还需要增加客户端上的最大数据包大小。关于设置数据包大小的更多信息,请参见第B.5.2.10节“数据包过大”


问题是JavaScript端的dataURI使用“+”来表示concat,PHP使用“.”,因此解决方案是将“+”替换为“.”

正如它所说,您的MySQL服务器不可用:请参阅