2012-02-29 3 views
1

테이블 (sessionid) 행의 특정 값이 다른 변수와 일치 할 때만 테이블에 데이터를 삽입하고 싶습니다. 나는 INSERT 문을 조합하는 데 어려움을 겪고있다. 내가 취하고있는 접근법 : 조건 (소매 업체 = $ 소매 업체)과 일치하는 테이블의 모든 행을 검색 한 다음 변수 옵션을 sessionid 테이블에 입력하는 행을 반복합니다.제한이있을 때 PHP를 사용하여 mysql 테이블에 값을 입력하는 방법은 무엇입니까?

$retailer = $_GET['retailer']; 
$options = $_GET['options']; 
$session = session_id(); 

//mysql connection stuff goes here 

$query = " 
SELECT * 
FROM `sessionid` 
WHERE `retailer` = '$retailer' 
"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_assoc($result)) { 
     mysql_query("INSERT INTO sessionid (options) VALUES('$options')"); 
    } 

구문이 올바른가요? 감사!

+0

하지 답 :하지만, http://php.net/manual/en/function.mysql-real와 추상적에 젠드 DB와 DB 쿼리 또는 적어도 탈출 $ 옵션과 소매 젠드 프레임 워크를 사용하는 것을 고려 -escape-string.php 또는 모두가 간단한 SQL 삽입으로 데이터베이스를 삭제할 수 있습니다. – Marc

+0

삽입은 새 레코드 용이고 업데이트는 기존 행 용입니다. –

답변

1

대신 UPDATE 명령을 찾으십니까? 그런데

UPDATE sessionid 
SET  options = $options 
WHERE retailer = $retailer 

, 나는 그것을 데이터베이스에 $_GET 값을 밀어보다 더 안전의로 PDO을 사용하여에 보일 것이다.

$db = new PDO('mysql:host=localhost;dbname=MYDATABASE', 'username', 'password'); 

$db->prepare('UPDATE sessionid SET options = ? WHERE retailer = ?'); 

$db->execute(array($options, $retailer)); 
0

mysql의 WHERE 절을 사용하면됩니다. 기존 행을 변경하는 경우 실제로 INSERT가 아닌 UPDATE가 필요합니다.

UPDATE sessionid SET options=$options where retailer = $retailer 
관련 문제