下面给出的代码将数组中的数据插入到mysql table.as中,这不是完整的代码,但我想知道的在这段代码中是可用的。我的问题是,在表中有一个名为"image_url“的字段,但该字段中的数据只有图像名称,我想在每个图像名称的开头添加http://www.xxxxxx.com,并将其替换为字段中的图像名称,但我不知道如何做到这一点,请帮助我
提前感谢
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);
}发布于 2012-02-17 20:27:32
这段代码应该可以做您想做的事情:
if (isset($v['image_url'])) {
$v['image_url'] = 'http://www.xxxxxx.com/' . $v['image_url'];
}你可以用点".“来连接字符串!
发布于 2012-02-17 20:35:46
起初..。您的应用程序是否受到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);
}https://stackoverflow.com/questions/9328084
复制相似问题