Php 无法将从关联数组读取的图像插入mysql表

Php 无法将从关联数组读取的图像插入mysql表,php,mysql,Php,Mysql,通过将二进制文件(图像)的内容读取到$banner $banner=addslashes(fread(fopen($mysql\u banner,“r”),filesize($mysql\u banner)) 然后可以轻松地将其放入MySQL数据库表中。它工作得很好。 但是,当您通过将二进制文件(图像)的内容加载到关联 数组$final对于以后从它插入数据库,出现了一个问题-您可以 不将其插入数据库表。 让我们将相同的内容放入关联的$final $final[“banner”]=addslash

通过将二进制文件(图像)的内容读取到$banner

$banner=addslashes(fread(fopen($mysql\u banner,“r”),filesize($mysql\u banner))

然后可以轻松地将其放入MySQL数据库表中。它工作得很好。 但是,当您通过将二进制文件(图像)的内容加载到关联 数组$final对于以后从它插入数据库,出现了一个问题-您可以 不将其插入数据库表。 让我们将相同的内容放入关联的$final

$final[“banner”]=addslashes(fread(fopen($mysql\u banner,“r”),filesize($mysql\u banner)

并将其分解为组件

 while ( list($name, $value) = each($final) )  {**
     $values_fields .= "$name, "; 
      $values .= "'$value', ";
}
$query1 = "INSERT INTO $banery ($values_fields) VALUES('$values')";
$res = mysql_db_query( $db, $query1)**
虽然原始$banner及其副本是一个变量$value(取自关联数组 $final)具有相同的内容(图像的二进制内容),只有原始的$banner可以插入到数据库中。当我尝试插入$value时,会显示以下警告:“-无法插入到数据库中。MySQL insert-有问题”。(神秘提示) 为什么?
在此处输入您从未定义过的代码

$banery
因此,您不能将其插入

你必须做一些类似的事情

INSERT INTO table_name (...
但你在做什么

INSERT INTO $table_name (...

不定义$table_名称(在您的示例中为$banery)是

。它们不再被维护。请参阅?改为了解,并使用或-将帮助您决定使用哪一个。如果选择PDO,。所有需要的变量都在脚本中的其他位置定义,并且工作正常。问题在于从关联的$final检索数据$value。我将良好工作的$final[“banner”]包含二进制字符串并在分解$final后返回$value,它包含与存储的原始字符串相同的二进制字符串,但可以插入。这很奇怪,可能在每次分解时“php在应用众所周知的语法时丢失了一些指针”。对于所有想引起兴趣的人,我说简化:我把硬币放进盒子($final)我回来了(列表=…相等)一个看起来相同但系统不接受它的硬币。如果插入的值被精确地命名为具体变量,脚本执行插入非常好。当从关联$final中提取相同的值后,字段名称和值名称被泛化,我认为这可能是相同的值当从计算机内存中读取时,它不是100%相同的。