2012-02-17 83 views
0

下面給出的代碼將數據從數組插入到mysql表中。因爲它不是完整的代碼,但我想知道的是在此代碼中可用。我的問題是,表中有一個名爲「image_url」的字段,但該字段中的數據只有圖像名稱,我想在每個圖像名稱的開頭添加http://www.xxxxxx.com,並將其替換爲字段中的圖像名稱,但是我不知道怎麼做,plz幫助我走出字符串與特定數組元素的連接

在此先感謝

function putTest($t) { 

    //$c = connect(); 

    foreach ($t as $k => $v) { 

     $query = "INSERT INTO test (".implode(',',array_keys($v)).") VALUES ('".implode("','",$v)."')"; 

     //echo "<pre>"; 

     // echo $query; 
     $r = mysql_query($query); 

    } 
    //mysql_close($c); 
} 

回答

2

這個片段應該做你想要什麼:

if (isset($v['image_url'])) { 
    $v['image_url'] = 'http://www.xxxxxx.com/' . $v['image_url']; 
} 

您可以用點「.」連接字符串!

+0

thankx很多親愛的這個非常快的響應 – user1210460 2012-02-18 08:37:02

1

起初......您的應用程序是否受到SQL injection的保護?如果你不應該使用mysql_real_escape_string()建立兩種方法/函數是這樣的:

function sqlSafeKey($key){ 
    return '`' . mysql_real_escape_string($key) . `'`; 
} 

function sqlSafeValue($value){ 
    return "'" . mysql_real_escape_string($value) . "'"; 
} 

而不是使用array_map()逃脫你這樣的價值觀:

$keys = array_map('sqlSafeKey', array_keys($v)); 
$values = array_map('sqlSafeValue', $v); 

關於你的問題......該matzino's answer是正確的,整個循環應該是這樣的:

function putTest($t) { 

    //$c = connect(); 

    foreach ($t as $k => $v) { 
     $v['image_url'] = 'http://www.xxxxxx.com/' . $v['image_url']; 
     $keys = array_map('sqlSafeKey', array_keys($v)); 
     $values = array_map('sqlSafeValue', $v); 

     $query = "INSERT INTO test (".implode(',', $keys). 
        ") VALUES ('".implode("','",$values)."')"; 

     //echo "<pre>"; 

     // echo $query; 
     $r = mysql_query($query); 

    } 
    //mysql_close($c); 
} 
+0

日Thnx很多親愛它幫助我很多。謝謝你所有的 – user1210460 2012-02-17 13:48:55

+0

@ user1210460記得http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work。) – Vyktor 2012-02-17 13:53:17

相關問題