2011-11-30 101 views
1

我有一个base64字符串中的所有数据的数据库。我需要做的是从数据库中提取每一行,对其进行解码,然后在数据库中进行更新。转换base64编码数据库

我写了一个小脚本,但它只转换一行。我怎样才能让它遍历所有行并转换它们?

这里是我的时刻:

$result = mysql_query("SELECT * FROM mod_manage_testimonials") or die(mysql_error()); 

while($row = mysql_fetch_array($result)) { 

$client_id = $row['client_id']; 
$title = base64_decode($row['title']); 
$content = base64_decode($row['content']); 
$link = base64_decode($row['link']); 

$result = mysql_query("UPDATE mod_manage_testimonials SET title='$title',content='$content',link='$link' WHERE client_id='$client_id'") 
or die(mysql_error()); 

} 
+1

如果它给你一个错误,添加一些SQL字符串转义。如果它已经是一个while循环,为什么它只能转换一行?或者你说'行'是什么意思? – mario

+1

这真的很明显。谢谢你马里奥指出。 mysql_escape_string() –

+0

更好'mysql_real_escape_string()'... – glglgl

回答

1

不要从SELECT - 查询与该UPDATE -query

$result = mysql_query("UPDATE mod_manage_testimonials SET title='$title',content='$content',link='$link' WHERE client_id='$client_id'") or die(mysql_error()); 

由于返回值改写结果$result尽管我可以从UPDATE中看到$result - 查询没有更深的含义,因此您可以忽略它。

mysql_query("UPDATE mod_manage_testimonials SET title='$title',content='$content',link='$link' WHERE client_id='$client_id'") or die(mysql_error());