1

PHP 配列に単一の行があり、キーと値を文字列に内破し、次のように Insert ステートメントでそれらの文字列を使用して、その行を mySQL データベースに挿入したいと考えています。

$fields = implode(",", array_keys($_POST));
$newdata = implode(",", $_POST);

$query = (
"INSERT INTO Food_entered ($fields)
VALUES ('$newdata')");

$result = mysqli_query($dbc, $query);

文字列を作成でき、適切な形式であるように見えますが、行が挿入されていません。単純なアプローチのように思えますが、何が欠けているのかわかりません。

4

2 に答える 2

9

@Barmarが指摘したように、問題は引用符が変数の外側にあることです。

これは、Barmarが投稿した方法よりも、これを修正する方が簡単でクリーンな方法かもしれないと思います:

$newdata = "'" . implode("','", $_POST) . "'";
于 2013-07-19T23:58:42.197 に答える
6

値のリスト全体ではなく、各値を引用する必要があります。

$fields = implode(",", array_keys($_POST));
$newdata = implode(",", array_map(function($x) use ($dbc) {
    return "'" . $dbc->real_escape_string($x) . "'";
}, $_POST));

$query = (
"INSERT INTO Food_entered ($fields)
VALUES ($newdata)");

$result = mysqli_query($dbc, $query);
于 2013-07-19T23:45:58.690 に答える