通过一个查询,我有两个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
列的行中添加$ data数组中的值?
有可能吗?
答案 0 :(得分:1)
尝试使用PHP PDO。它允许您准备一个语句,然后根据需要多次执行它。例如:
$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
}
...而且你不必按照你拥有字段的顺序提供执行数组。
问候!