2013-12-21 2 views
-1

저는 데이터베이스와 SQL이 새롭고 프로그래밍을 배우고 있습니다. this과 같은 표가 있습니다. 나는 phpMyAdmin을 사용한다.MySQL 데이터베이스에 행 추가

양식을 작성해야하고 submit 버튼을 클릭하면 "유럽"이라는 데이터베이스에 일부 데이터를 추가해야합니다.

<form action="addtime.php" method="POST"> 
//html table 
<p align="center"><input value="Send record" type="submit"></p> 
</form> 

그리고 여기 당신이 addtime.php을 볼 수

<?php 

$con=mysqli_connect("localhost","username","password","my_mk7vrlist"); 

mysql_query(INSERT INTO europe (Num,playername,Friendcode,Country,Skype,Twitter,Youtube) VALUES (3, "kjghskj", "t4glofshgk", "es", "jgd", "49hfis", "vvvv44444")); 

mysqli_close($con); 
?> 

데이터베이스 이름이 my_mk7vrlist하고 테이블 이름은 유럽입니다. "22 번 라인에서 예기치 않은 T_STRING"오류가 있습니다. 이 줄에는 함수 mysql_query();이 있습니다.

무엇이 누락 되었습니까?

+0

쿼리 문 주위에 따옴표를 넣어보십시오. 인수는 문자열입니다. –

답변

1

그것은이었다 내가 PHP를 다룰 때부터이 비트 ould 작업 (사용자 이름, 암호 및 데이터베이스 필드를 적절히 변경하십시오.

<?php 

$con = mysqli_connect('localhost', 'user_name', 'password', 'database'); 

mysqli_query($con, "INSERT INTO europe (Num, playername, Friendcode, Country, Skype, Twitter, Youtube) VALUES (3, 'kjghskj', 't4glofshgk', 'es', 'jgd', '49hfis', 'vvvv4444'"); 

mysqli_close($con); 

?> 

내가 비록 다음 좋을 것 : 한마디로

<?php 

$db_con = mysqli_connect('localhost', 'user_name', 'password', 'database'); 

$db_query = "INSERT INTO europe" 
    . " (Num, playername, Friendcode, Country, Skype, Twitter, Youtube)" 
    . " VALUES (3, 'kjghskj', 't4glofshgk', 'es', 'jgd', '49hfis', 'vvvv4444'"; 

mysqli_query($db_con, $db_query); 

mysqli_close($db_con); 

?> 

로 나는 경우 실제로) 잘못된 철자, 그것을 다시 작성하는 방법을 강제로 데이터베이스의 이름을 제거 다른 사람들은 SQL을 mysql_query 및 mysqli_query 함수에 전달할 때 String 데이터 유형 (이중 또는 작은 따옴표)이 필요하다는 것을 언급했다.

이 예제에서는 큰 따옴표가 필요하지 않지만 일반적으로 데이터베이스와 함께 작업 할 때 위와 같은 원시 값을 전달하지 않으므로 습관화하는 것이 좋습니다. 큰 따옴표가 허용하는 문자열에 변수를 전달할 것입니다 (작은 따옴표로 묶인 문자열은 PHP에서 그 체크를하지 않습니다).원본 코드가 큰 따옴표로 묶인 연결 변수를 가지고 있기 때문에이를 고려하십시오. 이것은 PHP의 인터프리터가 먼저 변수를 검사하고 실제 문자열을 해석하기 위해 패스를 작성한다는 것을 의미합니다.

그러나 다른 사람들은 (내가이 글을 쓰기 시작했을 때) 절차 적으로 글을 쓰고 있고 mysqli 객체를 사용하고 있지 않다는 것을 알았다. 이것은 mysqli_query에 연결 변수를 전달해야한다. 그렇지 않으면 어떻게 데이터를 쿼리 할 것인가?

그래서이 때문에 $ db_con이 첫 번째 인수이고 $ db_query가 두 번째 인수입니다. 참고로, 당신이 (같은 개체)을 할 수있는 :

<?php 

$db = new mysqli('localhost', 'user_name', 'password', 'database'); 

$db_query = "INSERT INTO europe" 
    . " (Num, playername, Friendcode, Country, Skype, Twitter, Youtube)" 
    . " VALUES (3, 'kjghskj', 't4glofshgk', 'es', 'jgd', '49hfis', 'vvvv4444'"; 

$db->query($db_query); 

$db->close(); 

?> 

가 나는 또한, "db_con"와 같은 덜 모호한 것을 사용하는 대신 변수 이름 "사기"를 사용하는 것이 좋습니다 때문에 변수 이름을 보는 사람, 그리고 변수 이름 만이 일반적으로 "con"이 무엇을 의미하는지 알 수 없습니다. "db"접두사를 사용하면 더 쉽게 데이터베이스 연결 변수라고 추측 할 수 있습니다.

내가 기억할 수있는 "예상치 못한 T_STRING"은 일종의 asinine 오류 (여러 가지 의미가있을 수 있음)이지만 일반적으로 구문 오류를 제안합니다. 예 : 누락 된 괄호, 누락 된 세미콜론, 누락 된 따옴표 등. 일반적으로 여러분은 그것이 언급하는 라인의 시작 부분을 보게됩니다. 필자는 PHP가 오류 프로토콜에서 매우 앞으로 나아지지 않는 한 라인 22가 유일한 오류라고 가정 할 수 없기 때문에 이것을 언급합니다.

또한 신고서를 두 부분으로 나누었습니다. 질의 변수 및 질의 함수 호출을 포함한다. 다시 말하자면, 의미와 불필요한 부분이지만,이 방법을 유지하고 읽는 것이 더 쉬울 것입니다. SQL 쿼리에서 중요한 논리적 인 변화를 강조하기 위해 쿼리 변수를 분리 된 행으로 분리했습니다. 다시 말하지만 지금은 불필요하지만 쿼리가 더욱 복잡 해지는 (특히 조인 작업을 할 때) 장래의 경우에 고려해야 할 중요합니다.

또한 필드 이름의 일관성을 유지하는 것이 좋습니다. 나는 "playername"이 대문자로 표기되지 않았으며 나머지는 대문자로 표기된 것으로 나타났습니다. 나는 모두 소문자로 유지하고 "_"로 내부 단어를 분리하는 것이 좋습니다. 대부분의 시간이 실제 프로그래밍보다 디버깅에 들어가기 때문에 코드보다 일관성이 중요합니다.

무엇이 잘못되었거나 오류가있는 경우 사과드립니다 (필요한 경우 수정하겠습니다). PHP를 사용해 본지 얼마되지 않았습니다.

참고 :

http://www.php.net/manual/en/mysqli.query.php

0

"usernale"이 맞습니까? 어쩌면 "사용자 이름"과는

0

귀하의 SQL 쿼리 문자열입니다 쿼리에 따옴표를 '추가, 그래서 제대로 묶

"INSERT INTO europe (Num,playername,Friendcode,Country,Skype,Twitter,Youtube) 
VALUES (3, 'kjghskj', 't4glofshgk', 'es', 'jgd', '49hfis', 'vvvv44444')" 
1
는 또한이

mysql_query("INSERT INTO `europe` (`Num`,`playername`,`Friendcode`,`Country`,`Skype`,`Twitter`,`Youtube`) VALUES (3, 'kjghskj', 't4glofshgk', 'es', 'jgd', '49hfis', 'vvvv44444')"); 

처럼 쿼리를 다시 작성

, 사용을 중지하십시오 mysql_*은 더 이상 사용되지 않으므로 기능이 중단되었습니다. 대신 MySQLi 또는 PDO로 전환하십시오.

2

검색어를 따옴표 안에 넣으십시오. 단일/이중 따옴표를 사용하십시오.

<?php 
$con=mysqli_connect("localhost","usernale","password","my_mk7vrlist"); 

mysqli_query($con, 'INSERT INTO europe (Num,playername,Friendcode,Country,Skype,Twitter,Youtube) VALUES (3, "kjghskj", "t4glofshgk", "es", "jgd", "49hfis", "vvvv44444")'); 

mysqli_close($con); 

그리고 변경 mysql_query (절차 스타일)

+0

http://www.php.net/manual/en/mysqli.query.php -> 여기보세요 –

+0

업데이트 됨 - http://br.php.net/mysqli_query –

+0

코드가 작동하지 않습니다. "그리고 ' –

관련 문제