2013-10-28 3 views
0

테이블이 "AllParties"인 MySQL 데이터베이스가 있습니다. 내가 (아래) PHP를 사용하여 해당 테이블에 데이터를 삽입 할 때 오류가 발생하지 않지만 데이터가 테이블에 삽입되지 않습니다. 나는 MySQL 서버로부터 에러 보고서를 얻으려고 애썼고, 다소 모호하게, MySQL 구문에 오류가 있다고 말했다. Mac CodeRunner에서 코드를 실행 중입니다. 이것이 문제 일 수 있습니까? 또한 $ con은 성공적인 연결입니다.PHP를 통해 MySQL 테이블에 데이터를 삽입하는 중 오류가 발생했습니다

INSERT INTO AllParties (`Party Name`, ...) 

역 따옴표가 아닌 일반 인용이다를 :

<?php 
$con=mysqli_connect("sql3.freemysqlhosting.net","*********","********","*********"); 

$name = "Will's Party"; 
$date = 'October 1st, 2013'; 
$housenum = '333 East Street'; 
$city = "Golden Gate"; 
$state = "California"; 
$time = "7:00"; 
$tag = "Serra"; 

mysqli_select_db('AllParties', $con); 

$alpha = mysqli_query($con, 'INSERT INTO AllParties(Party Name, Date, House number and  street name, City, State, Time, Tag) VALUES("$name","$date","$housenum","$city","$state","$time","$tag")'); 
?> 
+2

는'당신이 고려해야합니까 하우스 번호 (거리)는 x 문자열을 평가 후면 것은 적절한 열 이름을 name''? –

+0

'and'와 'street name'사이에 7 개의 공백이 있습니다. 이것은 열 이름에 반영됩니까? –

+0

** ** 더 많은 SQL 인터페이스 코드를 작성하기 전에 심각한 [SQL 주입 버그]가 발생하지 않도록 [올바른 SQL 이스케이프] (http://bobby-tables.com/php)를 읽어야합니다 (http : //bobby-tables.com/). mysqli를 사용하는 경우 매개 변수화 된 쿼리와 ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php)을 사용하여 쿼리에 사용자 데이터를 추가해야합니다. **이를 수행하기 위해 문자열 보간법을 사용하지 마십시오. – tadman

답변

0

그런 그 공백, 그리고 이름 열이있는 모든 열 이름은 개발자들이 매우 화가 만들 수있는 좋은 방법입니다, 이스케이프 할 필요가 데이터베이스, 테이블 및 열 이름 이스케이프에 사용됩니다. 문자열에 일반 인용 부호 '"이 사용됩니다.

-2
<?php 
$con=mysqli_connect("sql3.freemysqlhosting.net","*********","********","*********"); 

$name = 'Will\'s Party'; 
$date = 'October 1st, 2013'; 
$housenum = '333 East Street'; 
$city = 'Golden Gate'; 
$state = 'California'; 
$time = '7:00'; 
$tag = 'Serra'; 

mysqli_select_db('AllParties', $con); 

$alpha = mysqli_query($con, "INSERT INTO AllParties(`Party Name`, `Date`, `House number and street name`, `City`, `State`, `Time`, `Tag`) VALUES('{$name}','{$date}','{$housenum}','{$city}','{$state}','{$time}','{$tag}')"); 
?> 

{$의 X}

관련 문제