2012-04-20 2 views
0

동일한 데이터베이스에있는 두 개의 서로 다른 테이블에 데이터를 삽입하려고합니다. 한 데이터베이스에 삽입하려고하면 두 번째 쿼리를 코드에 삽입하면 작동합니다. ($의 desc_query)는 모든 테이블 여기PHP를 사용하여 두 개의 별도 테이블에 데이터 삽입

업데이트되지 않습니다 내 코드는 다음과 같습니다

$name= strip_tags($_POST['name']); 
    $l_name= strip_tags($_POST['last_name']); 

    $c_id = strip_tags($_POST['company_id']); 
    $a_d = strip_tags($_POST['add_description']); 
    $d_t = strip_tags($_POST['desc_text']); 

$connect = mysql_connect('localhost','id','pass') or die ("couldn't connect!"); 

mysql_select_db('database_db') or die('could not connect to database!'); 

//inserting names 

$job_query=mysql_query("INSERT INTO names VALUES ('', '$name', '$l_name')"); 

    //inserting a new description if needed. (this is the part that ruins everything) 
if($a_d == 'true'){ 
    $desc_query=mysql_query("INSERT INTO descriptions VALUES ('','$c_id','$d_t')"); 
} 
+0

. 매우 불완전합니다. 모든 변수는 com? –

+1

코드 무엇 –

+1

var_dump를 사용하여 $ a_d의 값을보십시오. –

답변

1

당신은 ("처럼 '등) 일부 문자가 SQL 쿼리를 파괴하는 문제를 낳게 될 수도 있습니다 (SQL 인젝션 공격에 대한 응용 프로그램까지를 열고 말할 것도없고).

을 나는 모든 사용자가 제공하는 데이터를 살균 추천 같은 :

$name = mysql_real_escape_string(strip_tags($_POST['name']), $connect); 
$l_name = mysql_real_escape_string(strip_tags($_POST['last_name']), $connect); 
... 
$d_t = mysql_real_escape_string(strip_tags($_POST['desc_text']), $connect); 

항상 사용자가 (또는하지 않을 수 있습니다) 당신의 SQL을 깰 수 엉뚱한 또는 악의적 인 무언가를 입력하려고한다는 가정하에 운영

은 $ a_d ???
0

당신이 쿼리를 에코하려고 다음 데이터베이스에 직접 실행할 수 있나요?

데이터베이스에 대한 더 이상의 정보가 없으면 쿼리 자체가 유효한지 여부를 알 수 없습니다.

관련 문제