0

1つのqueryWellによって、私は2つのphp関数を取得しました。どちらもDBテーブルにいくつかの値を挿入する必要があります。だから最初のもの

mysql_query("INSERT INTO images (thumb) VALUES ('$path')");

サイクルでシンを実行します。しかし、他の列にいくつかの値を追加する必要がありましたが、問題は、すべてのthouse値が配列に格納されることです。その機能はどのように見えましたか。

 function uploading_paths($names_array){
    $data = '(\'' . implode('\'),(\'', $names_array) . '\')';
    mysql_query("INSERT INTO `images` (`image_path`) VALUES $data");

}

thumbでは、1つのクエリで列が既に入力されている行の$ data配列から値を追加するにはどうすればよいですか?出来ますか?

4

1 に答える 1

1

これにはPHPPDOを使用してみてください。ステートメントを準備して、必要な回数だけ実行できます。例:

$mysql_host = "127.0.0.1";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "myShop";
$dbLink = new PDO("mysql:host=$mysql_host;dbname=$mysql_database;charset=utf8", $mysql_user, $mysql_password, array(PDO::ATTR_PERSISTENT => true));
$dbLink->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
$query = $dbLink->prepare("insert into `images` (`thumb`, `path`) values (?, ?);");
foreach ($names_array as $thumb => $path)
{  
    $query->execute(array($thumb, $path)); // note the order as they should appear
}

最終的には、最後のパスを次のように置き換えることができます。

$query = $dbLink->prepare("insert into `images` (`thumb`, `path`) values (:thumb, :path);");
foreach ($names_array as $thumb => $path)
{  
    $query->execute(array(":path" => $path, ":thumb" => $thumb)); // no order restriction
}

...そして、フィールドがある順序で実行の配列を指定する必要はありません。

よろしく!

于 2012-11-15T20:32:04.997 に答える