相关疑难解决方法(0)

PDO PHP从关联数组插入到DB中

我有这样的数组

  $a = array( 'phone' => 111111111, 'image' => "sadasdasd43eadasdad" );
Run Code Online (Sandbox Code Playgroud)

当我进行var-dump时,我得到了这个 - >

 { ["phone"]=> int(111111111) ["image"]=> string(19) "sadasdasd43eadasdad" }
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用IN语句将其添加到数据库 -

 $q = $DBH->prepare("INSERT INTO user :column_string VALUES :value_string");
 $q->bindParam(':column_string',implode(',',array_keys($a)));
 $q->bindParam(':value_string',implode(',',array_values($a)));
 $q->execute();
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是implode返回一个字符串.但'phone'列是数据库中的整数,并且数组也将其存储为整数.因此我收到SQL错误,因为我的最终查询看起来像这样 -

INSERT INTO user 'phone,image' values '111111111,sadasdasd43eadasdad';
Run Code Online (Sandbox Code Playgroud)

哪个是错误的查询.有没有办法解决它.

我的列名是动态的,基于用户想要插入的内容.所以我不能使用像:phone:image这样的占位符,因为我可能并不总是得到这两列的值.如果有办法,请告诉我.否则我将不得不为每种类型的更新定义多个功能.

谢谢.

php mysql database arrays pdo

9
推荐指数
3
解决办法
2万
查看次数

标签 统计

arrays ×1

database ×1

mysql ×1

pdo ×1

php ×1