2012-11-15 65 views
0

由一個queryWell,我有兩個PHP函數。他們都應該在數據庫表中插入一些值。因此,第一個多行更新與sql

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

在做循環變薄。 但是我nedd在其他列中添加一些值,但問題是所有thouse值存儲在數組中。那功能是怎樣的。

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

} 

所以,我怎麼能添加從$ data數組值行通過一個查詢已經填寫thumb列? 這可能嗎?

+1

你想插入或更新? – vlcekmi3

+0

我想更新。它之前插入cuz當我寫了它,我認爲那裏只會只有一列 – DanilGholtsman

回答

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 
} 

...你那倒必須提供在你的字段順序執行的陣列。

問候!

+0

好吧,thx我會嘗試它 – DanilGholtsman