2012-02-17 84 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

相关问题