PHP INSERT Bad data

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Adrian Parker

    PHP INSERT Bad data

    I have the code below. It builds an INSERT command, and it gets run on the
    database. Everything works fine except the database is only receiving the
    first 6 characters of the phone number.

    The field in the database can hold 10 digits (confirmed). The echo
    statement shows that the phone number is indeed 10 characters long.

    The second echo statement show the $query looks similar too:
    INSERT INTO students Values ('', '1', 'SomeFirstname' , 'SomeLastName',
    'License', 'adrian.parker@ sympatico.ca', ' 6135315960', ' ', ' ', ' ')

    When I run this query in mySQL when logged onto the terminal, the phone
    number appears fine.

    How could truncation be happening?


    if (isset($_POST["firstName"]))
    {
    $query = "INSERT INTO students Values ('', '1', '" . $_POST["firstName"] .
    "', '
    " . $_POST["lastName"] . "', '
    " . $_POST["licenseNum ber"] . "', '
    " . $_POST["eMail"] . "', '
    " . $_POST["phone"] . "', '
    " . $_POST["city"] . "', '
    " . $_POST["address"] . "', '
    " . $_POST["birthDate"] . "')";

    echo "Phone number is: " . $_POST["phone"] . "<br><br>";
    echo "The query statement is: " . $query . "<br>";

    $result = mysql_query($qu ery) or die("Adding the student to the database
    failed: " . mysql_error());
    }



    <Ade
    --
    Adrian Parker. Ordained priest. <adrian.parker@ sympatico.ca>

    "A society that views graphic violence as entertainment ...should not be
    surprised when senseless violence shatters the dreams of it's youngest and
    brightest..." - Ensign (March 2004)


  • Jan Pieter Kunst

    #2
    Re: PHP INSERT Bad data

    In article <_0akc.41055$OU .957555@news20. bellglobal.com> ,
    "Adrian Parker" <adrian.parker@ NOSPAMsympatico .ca> wrote:
    [color=blue]
    > The field in the database can hold 10 digits (confirmed). The echo
    > statement shows that the phone number is indeed 10 characters long.
    >
    > The second echo statement show the $query looks similar too:
    > INSERT INTO students Values ('', '1', 'SomeFirstname' , 'SomeLastName',
    > 'License', 'adrian.parker@ sympatico.ca', ' 6135315960', ' ', ' ', ' ')[/color]

    I would guess the space between the first ' and the 6 is messing things
    up. I don't know how the phone number column in your database is
    defined, but could there be some silent character-to-number conversion
    going on here, with unwanted results? Try it without that first space
    and see what happens.

    JP

    --
    Sorry, <devnull@cauce. org> is een "spam trap".
    E-mail adres is <jpk"at"akamail .com>, waarbij "at" = @.

    Comment

    • Adrian Parker

      #3
      Re: PHP INSERT Bad data


      "Jan Pieter Kunst" <devnull@cauce. org> wrote in message
      news:devnull-466947.18525729 042004@news1.ne ws.xs4all.nl...[color=blue]
      > In article <_0akc.41055$OU .957555@news20. bellglobal.com> ,
      > "Adrian Parker" <adrian.parker@ NOSPAMsympatico .ca> wrote:
      >[color=green]
      > > The field in the database can hold 10 digits (confirmed). The echo
      > > statement shows that the phone number is indeed 10 characters long.
      > >
      > > The second echo statement show the $query looks similar too:
      > > INSERT INTO students Values ('', '1', 'SomeFirstname' , 'SomeLastName',
      > > 'License', 'adrian.parker@ sympatico.ca', ' 6135315960', ' ', ' ', ' ')[/color]
      >
      > I would guess the space between the first ' and the 6 is messing things
      > up. I don't know how the phone number column in your database is
      > defined, but could there be some silent character-to-number conversion
      > going on here, with unwanted results? Try it without that first space
      > and see what happens.[/color]

      It's being stuffed into a string, so there should be no problem. There is
      no middleware between the database and my script, so there should be nothing
      altering the data.

      .... ok, removed the leading space, it fixed it!

      Why would a leading space cause problems when inserting into a text field?


      Adrian


      Comment

      • Kelly Thompson

        #4
        Re: PHP INSERT Bad data

        On Thu, 29 Apr 2004 18:52:57 +0200
        Jan Pieter Kunst <devnull@cauce. org> wrote:
        [color=blue]
        > In article <_0akc.41055$OU .957555@news20. bellglobal.com> ,
        > "Adrian Parker" <adrian.parker@ NOSPAMsympatico .ca> wrote:
        >[color=green]
        > > The field in the database can hold 10 digits (confirmed). The
        > > echo statement shows that the phone number is indeed 10 characters
        > > long.
        > >
        > > The second echo statement show the $query looks similar too:
        > > INSERT INTO students Values ('', '1', 'SomeFirstname' ,
        > > 'SomeLastName', 'License', 'adrian.parker@ sympatico.ca', '
        > > 6135315960', ' ', ' ', ' ')[/color]
        >
        > I would guess the space between the first ' and the 6 is messing
        > things up. I don't know how the phone number column in your database
        > is defined, but could there be some silent character-to-number
        > conversion going on here, with unwanted results? Try it without that
        > first space and see what happens.[/color]

        If the field is INT the space won't matter, but an INT is 4 bytes. It
        lets you store x such that -2147483648 < x < 2147483647. If it's INT,
        then it won't fit. If it's varchar(10), then '6135315960' will, but
        a string such as ' 6135315960' won't.

        Comment

        • Adrian Parker

          #5
          Re: PHP INSERT Bad data


          "Kelly Thompson" <kthompson_11_1 1@hotmail.com> wrote in message
          news:2004042915 0809.6abd4f7a.k thompson_11_11@ hotmail.com...[color=blue]
          > On Thu, 29 Apr 2004 18:52:57 +0200
          > Jan Pieter Kunst <devnull@cauce. org> wrote:
          >[color=green]
          > > In article <_0akc.41055$OU .957555@news20. bellglobal.com> ,
          > > "Adrian Parker" <adrian.parker@ NOSPAMsympatico .ca> wrote:
          > >[color=darkred]
          > > > The field in the database can hold 10 digits (confirmed). The
          > > > echo statement shows that the phone number is indeed 10 characters
          > > > long.
          > > >
          > > > The second echo statement show the $query looks similar too:
          > > > INSERT INTO students Values ('', '1', 'SomeFirstname' ,
          > > > 'SomeLastName', 'License', 'adrian.parker@ sympatico.ca', '
          > > > 6135315960', ' ', ' ', ' ')[/color]
          > >
          > > I would guess the space between the first ' and the 6 is messing
          > > things up. I don't know how the phone number column in your database
          > > is defined, but could there be some silent character-to-number
          > > conversion going on here, with unwanted results? Try it without that
          > > first space and see what happens.[/color]
          >
          > If the field is INT the space won't matter, but an INT is 4 bytes. It
          > lets you store x such that -2147483648 < x < 2147483647. If it's INT,
          > then it won't fit. If it's varchar(10), then '6135315960' will, but
          > a string such as ' 6135315960' won't.[/color]

          It's a Varchar(10) field.

          Why again does the leading space remove 4 bytes from the end of the string?


          Adrian


          Comment

          Working...