2011-09-23 2 views
1
$sql = mysql_query("INSERT INTO `users` VALUES(
     '', 
     '$form['name']', 
     '$form['saddress']', 
     '$form['apt']', 
     '$form['zip']', 
     '$form['homephone']', 
     '$form['cellphone']', 
     '$form['email']', 
     '$form[' ']', 
     '$form['city']', 
     '$form['state']', 
     '$form['country']', 
     '$salt','$hash', 
     '$form['username']' 
    )"); 

어떻게하면됩니까? 그것은 다음과 같이 변수 주위에 중괄호를 사용하여 나에게 Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRINGSQL 쿼리의 배열 값은 무엇입니까?

+2

는 점을 잊지 마세요 ... '. $ form [ 'city']. ' –

+0

왜 점들이 필요한가요? 이전에 SQL 쿼리에 일반 변수를 삽입 할 때 사용하지 않았습니다. – Jason

+0

또는 {} '{$ form ['name ']}', –

답변

2

시도를주고 :

.. 
'{$form['name']}', 
'{$form['saddress']}', 
.. 
1

하나를 $form['x']에서 작은 따옴표를 제거하거나 같은 것을 수행하여 :

mysql_query("INSERT INTO x VALUES(
    '" . mysql_real_escape_string($form['x']) . "', 
    '" . mysql_real_escape_string($form['x']) . "' 
"); 

공지 사항이 작은 따옴표 안에 큰 따옴표가 있습니다.

0

이것은 PHP가 변수 문자열을 구문 분석 할 때 생기는 고전적인 문제로 혼란 스러울 수 있습니다. 내 변수를 문자열 외부에 유지하고 필요한 경우 연결하는 것을 선호합니다.

는 여기에 내가 무엇을 할 것이라고입니다 :

$sql = mysql_query("INSERT INTO `users` VALUES('" . 
    implode("','", array(
     "", 
     $form['name'], 
     $form['saddress'], 
     $form['apt'], 
     $form['zip'], 
     $form['homephone'], 
     $form['cellphone'], 
     $form['email'], 
     $form[' '], 
     $form['city'], 
     $form['state'], 
     $form['country'], 
     $salt, 
     $hash, 
     $form['username'] 
    )) . "')"; 
);