2012-10-15 3 views
-1

데이터베이스에 데이터를 입력하려고하는데 계속 오류가 발생합니다. 나는 문제가 어디 있는지 전혀 모른다. 코드는 다음과 같습니다.PHP를 사용하여 양식에서 데이터베이스로 데이터 입력

<?php 
    $sql = "INSERT INTO $db_table (title,group,overlapok,userid,name,phone,email,description,managers,location,notify,notifyman, 
remind,remindman,appmsg,viewaccess,viewulist,viewclist,makeaccess,makeulist,makeclist,showappinfo) 
VALUES ('".mysql_real_escape_string(stripslashes($_REQUEST['txtTitle'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['chkGroupCal'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['chkAllowOverlap'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['txtUserID'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['txtOwner'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['txtPhone'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['txtEmail'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['txtDesc'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['txtManagers'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['txtLocation'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['chkNotifyMe'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['chkNotifyMgrs'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['chkRemind'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['chkRemindMan'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['txtAppText'])). 
"','".mysql_real_escape_string(stripslashes($_REQUEST['selViewBlockRestr'])). 
    "','".mysql_real_escape_string(stripslashes($_REQUEST['txtViewBlocksUserID'])) 
    "','".mysql_real_escape_string(stripslashes($_REQUEST['txtViewBlocksCourseID']))."','".mysql_real_escape_string(stripslashes($_REQUEST['selMakeApptRestr']))."','".mysql_real_escape_string(stripslashes($_REQUEST['txtMakeApptUserID']))."','".mysql_real_escape_string(stripslashes($_REQUEST['txtMakeApptDptID']))."','".mysql_real_escape_string(stripslashes($_REQUEST['chkShowAppInfo']))."')"; 

if($result = mysql_query($sql,$db)) 
    { 
    echo '<h1>Thank you</h1> Your information has been entered into our database<br><br> 
     <p> <a href="viewcalendar.page.php"> View Calendar </a> </p> 
     <img src="eDiary.jpg"'; 

    } 
    else 
    { 
    echo "ERROR: "; 
    } ?> 

양식에 체크 상자가 비어있을 수있는 섹션이 있습니다.

귀하의 조언을 따르고 PDO를 사용했습니다. 다음 오류를 반환합니다. 경고 : PDO :: __ construct() [pdo .-- construct] : [2002]/opt/lampp/htdocs/Scheduler/pages/enterCal의 잘못된 인수 (unix를 통해 연결을 시도하는 중 : //) .page.php on line 72 연결 실패 : SQLSTATE [HY000] [2002] 잘못된 인수 치명적 오류 :/opt/lampp/htdocs/Scheduler/pages/enterCal의 비 객체에서 멤버 함수 exec()를 호출하십시오. .page.php on line 80.

$ db는 (는) 객체가 아니며 연결이 실행되고 있지 않습니다. 어떻게 처리합니까? 나는 Google을 사용해 봤지만 작동하는 것으로 생각되지 않습니다.

<?php 

$dsn = 'mysql:host=localhost;dbname=eDiary'; 
$user = 'root'; 
$password = ''; 

try 
{ 
     $db = new PDO($dsn,$user,$password); 
     $db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);}     
catch (PDOException $e) { 
    echo 'Connection Failed: ' . $e->getMessage(); 
    } 

$result = $db->exec("INSERT INTO wassCalendar(title, group, overlapok, userid, name, phone, email, description, managers, location, notify, notifyman, remind, 
remindman, appmsg, viewaccess, viewulist, viewclist, makeaccess, makeulist, makeclist, showappinfo) 
VALUES($txtTitle, $chkGroupCal, $chkAllowOverlap, $txtUserID, $txtOwner, $txtPhone, $txtEmail, $txtDesc, $txtManagers, 
$txtLocation, $chkNotifyMe, $chkNofityMgrs, $chkRemind, $chkRemindMan, $txtAppText, $selViewBlockRestr, 
$txtViewBlocksUserID, $txtViewBlocksCourseID, $selMakeApptRestr, $txtMakeApptUserID, $txtMakeApptDptID, 
$chkShowAppInfo)"; 

$insert_id = mysql_insert_id(); 

?> 
+0

글쎄, 오류가 무엇입니까? http://php.net/manual/en/function.mysql-error.php 또한 mysql_ 함수를 사용하는 것을 권장하지 않습니다. 대신 "PDO 또는 MySQLi를 대신 사용하십시오". –

+2

코드가 백틱으로 시작됩니다. 그건 틀렸어요. 또한 오류는 무엇입니까? –

+1

먼저 작은 쿼리로 시도하십시오. 또한 게시 한 코드의 구문을 실제로 확인하십시오 (이 웹 사이트의 편집 도구로 인해 어려움을 겪고있는 것처럼 보였으므로 조금 더 편하게 생각하십시오). 정확한 오류 메시지가 누락되어 질문에 추가하면 실제로 실행 한 오류가 명확합니다. – hakre

답변

0

쿼리에서 사용자 입력을 사용해야하는 상황에서는 쿼리를 매개 변수화해야합니다.

Here은 내가 동일한 문제를 다루는 또 다른 주제입니다.

입력을 위생적으로 처리하는 것은 믿기지 않을 정도로 나쁜 습관이며, 결과적으로 당신을 물게 할 것입니다.

관련 문제