2011-11-30 2 views
1

모든 데이터가 base64 문자열에있는 데이터베이스가 있습니다. 내가해야 할 일은 데이터베이스의 모든 행을 가져 와서 해독 한 다음 데이터베이스에서 업데이트하는 것입니다.base64로 인코딩 된 데이터베이스 변환

작은 스크립트를 작성했지만 한 행만 변환합니다. 모든 행을 실행하고 변환하려면 어떻게해야합니까? 하여 UPDATE - 쿼리

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

으로의 반환 값으로 SELECT - 쿼리에서 결과 $result을 덮어 쓰지 않음

$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

: 여기

내가 지금 무엇을 가지고 지금까지 볼 수 있듯이 UPDATE$result - 쿼리에는 더 깊은 의미가 없으므로 그냥 생략 할 수 있습니다.

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