Скрипты Perl не могут получить доступ к базе данных Demon Access для INSERT, DELETE или UPDATE, но позволяют мне искать и отображать ??.,,ПОМОГИТЕ? - PullRequest
0 голосов
/ 16 февраля 2011

Мои операторы INSERT, DELETE не будут работать, и я не знаю почему. , , на самом деле это сводит меня с ума. Пожалуйста, смотрите мои приложенные scrpits. Я использую Open Perl IDE, а также Notebook ++ для контрастирования и работы над этими сценариями. Насколько я могу судить, с ними все в порядке, и это сводит меня с ума. Я проверил права доступа к файлам для базы данных. Я могу искать информацию в базе данных и отображать все элементы в базе данных, но не могу вставить, удалить или обновить.

Ниже найдите ссылку на мою страницу (форматирование страницы будет лучше, когда я смогу получить некоторые функциональные возможности): http://129.2.168.163/cm485a2/project1.html

Пожалуйста, помогите.

#!/usr/bin/perl -w


use strict;
#use DBI;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);  # provide descriptive error messages
use Win32::ODBC;  #use ODBC package vs. DBI as in text

print header(); # print out "Content-Type: text/html\n\n"

# Get user's desired action from form
my $action = param('form_action');

# Connect to database
my $db = new Win32::ODBC("DSN=rreAccesscm485a2; UID=cm485a; PWD=kbradford68g")
     or die Win32::ODBC::Error();

my $cust_ID;
    my $fName;
my $mI;
my $lName;
my $street;
my $city;
my $state; 
my $zip_Code;
my $DOB;
my $agent_ID;
my $home_Phone;
my $cell_Phone;
my $profession;
my $employer;
my $referrer;

$cust_ID     = param('cust_ID');
$fName = param('first_Name');
    $mI = param('mI');
    $lName = param('last_Name');
    $street = param('street_Name');
    $city = param('city');
    $state = param('state');
    $zip_Code = param('zip_Code');
    $DOB = param('DOB');
    $agent_ID = param('agent_ID');
    $home_Phone = param('home_Phone');
    $cell_Phone = param('cell_Phone');
    $profession = param('profession');
    $employer = param('employer');
    $referrer = param('referrer');
    my $sql;

    $sql  = qq{INSERT INTO customer (Customer ID, first_Name, mI, last_Name,};
    $sql .= qq{street_Name, city, state, zip_Code, DOB};
    $sql .= qq{agent_ID, home_Phone, cell_Phone, profession, employer, referrer)};

    $sql .= qq{ VALUES ('$cust_ID','$fName','$mI','$lName','$street','$city',};
    $sql .= qq{'$state','$zip_Code','$DOB','$agent_ID','$home_Phone','$cell_Phone',};
    $sql .= qq{'$profession', '$employer', '$referrer')};

    #print '$sql=' . $sql . "\n";
    if ($db->Sql($sql)) 
    {
print "SQL Error: " . $db->Error() . "\n";
    print qq(<html><head><title>Database Error</title>
</head>
    <body><center><font size="6">Error with database call.</font>
    <hr />
    <font size="4" color="red">ODBC DB Error</font><br />
    <font size="3">Please hit your <b>Back</b> button to re-enter the data and try    again.</font></center>
    </body>
</html>);
exit;
}

sub Display_Page {
print qq(<html><head><title>Record Added!</title></head>
         <body>
            <center>
            <font size="6">Record Added!</font>
            <hr />
            <font size="4">
            <a href="http://129.2.168.163/cm485a2/project1.html">Back to Main Page</a>
            </font><br />
            </center>
         </body>
      </html>);
}

1 Ответ

2 голосов
/ 16 февраля 2011

Вам нужно заключить в кавычки Customer ID или изменить имя столбца, чтобы оно не содержало пробелов.

Вы также должны убедиться, что у вас есть запятая (,) после каждого столбца. Он отсутствует после имени столбца DOB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...