2012-03-03 2 views
3
Table 
*------------------------------------------------* 
| id | title | filename   | 
*------------------------------------------------* 

이것이 테이블의 구조라고합니다. 이 테이블의 모든 단일 행을 업데이트하려고합니다.mySQL 데이터베이스에서 PHP로 테이블의 모든 행을 업데이트하십시오.

Filename의 모든 공백을 밑줄로 바꾸려고합니다.

$new_filename = str_replace(" ", "_", $filename); 

mysql_query("UPDATE table SET Filename = '$new_filename'"); 

이것은 작동하지 않습니다. 각 행마다 다른 파일 이름이 있습니다.

+0

각각의 행이 다른 파일 이름과 그 파일 이름의 각 공백을 밑줄 교체하려는 각 행에있다? – dldnh

+1

* 시도해보십시오. –

+0

Brian은 Filename이 설정되지 않았으므로 명령 후 – 2by

답변

12

단순히 이런 짓을 했을까 :

mysql_query("UPDATE table SET Filename = REPLACE(Filename, ' ', '_')"); 

당신이 하나의 명령을 실행하고 테이블의 크기에 따라,이

*이

편집 꽤 빨리해야이 방법을
+0

감사합니다. 표의 모든 행의 파일 이름이 비어 있습니다. 감사합니다! 뭔가를 검색하고 검색과 일치하는 파일 이름을 가진 행을 바꾸려면 어떻게해야합니까? – 2by

+1

where 절을 추가하면됩니다. 예 :'WHERE filename' = 'Some file''. 자세한 내용은 http://dev.mysql.com/doc/refman/5.0/en/where-optimizations.html 및 http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes를 참조하십시오. html –

+0

좋은 방법이지만 일반적인 대답에 더 관심이 있습니다. 변화가 그렇게 간단하지 않다면 어떨까요? 예를 들어, 데이터베이스 엔트리는 비디오의 임베드 코드와 다른 것들을 포함하는 짧은 HTML 스 니펫을 가지고 있습니다. 해당 소스 코드를 HTML5 불만 사항으로 변경하고 해당 소스 코드를 f (원래 코드)로 변경하고 싶습니다. 이것은 PHP를 통해 쿼리하고 그것을 행을 업데이 트해야 할 것 같아요. – iankit

0

먼저 mysql_connect()를 사용하여 데이터베이스에 연결했다면 작동합니다.

일회용으로이 솔루션을 사용하는 경우 사용자가 일종의 양식을 통해이를 수행하도록 허용하는 경우 SQL 인젝션이라는 보안 결함이 있습니다. $ filename 변수가 사용자에 의해 제출되면, 그들은 쿼리를 끝내고 새로운 것을 시작할 수 있습니다. unsanitised 데이터를 MySQL 쿼리에 두지 마십시오.

mysql_real_escape_string을 통해 put $ filename을 반올림하거나 MySQLi 또는 PDO가 제공 한 준비된 명령문을 더 잘 사용하십시오.

3

첫 번째 대답은 방법입니다 더 나은 :)

그래서 파일 이름은 모든 행에 동일합니까? 그렇지 않으면이 코드는 모든 파일 이름을 하나의 이름으로 바꿉니다. for 루프는 테이블에서 데이터를 가져와 업데이트해야합니다. 이처럼

:

$query = "SELECT id, filename FROM table"; 
    $result = mysql_query($query); 
    if($result){ 
     $num = mysql_numrows($result); 
     $i=0; 
     while ($i < $num) { 
      $new_filename = str_replace("_", " ", mysql_result($result,$i,"filename")); 
      $id = mysql_result($result,$i,"id"); 
     mysql_query("UPDATE table SET filename = '$new_filename' WHERE id='$id'"); 
     } 
    } 
+0

-1 WHERE id = 'mysql ... 근처에 깨진 코드가 있습니다. – Gabriel

+0

Orly? 뭐가 문제 야? –

+0

아직도? 나는 그것을 편집했다고 생각 했는가? –

관련 문제