1

MySQL で INSERT を生成するために使用するために、テーブルの名前と列名と値を含む配列を取る関数を作成したいと考えています。

私のコードをチェックしてください。

残念ながら、この手法は機能しません。各値の後に常にコンマが生成され、データを入力するときにエラーが発生するからです。この関数を作成するより良い方法を知っている人はいますか?

<?php
$arrayDados = array('nome' => 'Renato', 'idade' => 24, 'peso' => 36, 'mae' => 'neide');
$colunas = "";
$valores = "";
$tabela = 'cadastro';

    foreach ($arrayDados as $key => $value) {
        $colunas .=  $key . ', ';
        $valores .= $value.', ';
    }
$sql = "INSERT INTO $tabela ($colunas) VALUES ($valores)";

echo $sql;`
4

2 に答える 2

2

見てみましょうimplode(): http://php.net/manual/en/function.implode.php

implode(',', $yourArray);

ただし、エスケープされていないデータの問題を回避するために、可能な限り、このようなものの代わりに準備されたクエリを使用してください。

于 2012-10-06T04:59:18.330 に答える
1
$sql = "INSERT INTO $tabela (".implode(",",array_keys($arrayDados)).") VALUES (".implode(",",array_values($arrayDados)).")";

ドキュメント: array_keys- array_values-implode

于 2012-10-06T04:59:56.110 に答える