将dataURI图像从JavaScript解析为PHP
我在JavaScript中创建了一个函数,用于将用户选择的“图像”文件转换为dataURI。然后我通过POST方法将其传递给php脚本。问题是当我尝试将这些信息保存到MySQL时,如下所示将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`, `
$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服务器不可用:请参阅