Re: Error Querying Database

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2010-12-15 at 14:34 -0500, Gary wrote:
> "Steve Staples" <sstaples@xxxxxxxx> wrote in message 
> news:1292440837.5460.8.camel@xxxxxxxxxxx
> > On Wed, 2010-12-15 at 13:42 -0500, Gary wrote:
> >> I cant seem to get this to connect.  This is to my local testing server,
> >> which is on, so we need not worry that I have posted the UN/PW.
> >>
> >> This is a duplicate of a script I have used countless times and it 
> >> worked.
> >> The error message is 'Error querying database.'
> >>
> >> Some one point out the error of my ways?
> >>
> >> Gary
> >>
> >>
> >> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
> >> <tr>
> >> <td>
> >> <label>Name of Beer</label></td><td><input name="beername" type="text" />
> >> </td>
> >> </tr>
> >> <tr>
> >> <td>
> >> <label>Maker of Beer</label></td><td><input name="manu" type="text" />
> >> </td>
> >> </tr>
> >> <tr>
> >> <td>
> >> <label>Type of Beer</label></td>
> >> <td><select name="type" size="1" id="type">
> >>   <option>Imported</option>
> >>   <option>Domestic</option>
> >>   <option>Craft</option>
> >>   <option>Light</option>
> >> </select>
> >> <!--<select name="avail" size="1" id="avail">
> >>   <option>Available</option>
> >>   <option>Sold</option>
> >> </select>-->
> >> </td>
> >> </tr>
> >> <tr>
> >> <td><label>Sold in</label>
> >> </td><td><input type="checkbox" name="singles" value="Yes" /> Singles<br 
> >> />
> >> <input type="checkbox" name="six" value="Yes" /> Six Packs <br />
> >> <input type="checkbox" name="can" value="Yes" /> Cans<br />
> >> <input type="checkbox" name="bottles" value="Yes" /> Bottles <br />
> >> <input type="checkbox" name="tap" value="Yes" /> Draft <br />
> >> <tr>
> >> <td>
> >> <label>Size</label></td><td><input name="size" type="text" />
> >> </td></tr>
> >> <tr><td>
> >> <label>Description</label></td><td><textarea name="desc" cols="40"
> >> rows="5"></textarea>
> >> </td></tr>
> >> <tr><td>
> >> <input name="submit" type="submit" value="Submit" /></td></tr>
> >> </form>
> >> </table>
> >> </div>
> >> <div id="list">
> >> <?php
> >> $beername = $_POST['beername'];
> >> $manu = $_POST['manu'];
> >> $type = $_POST['type'];
> >> $singles = $_POST['singles'];
> >> $six = $_POST['six'];
> >> $can = $_POST['can'];
> >> $bottles = $_POST['bottles'];
> >> $tap = $_POST['tap'];
> >> $size = $_POST['size'];
> >> $desc = $_POST['desc'];
> >> $ip= $_SERVER['REMOTE_ADDR'];
> >>
> >> $dbc = mysqli_connect('localhost','root','','rr')or die('Error connecting
> >> with MySQL Database');
> >>
> >> $query = "INSERT INTO beer (beername, manu, type, singles, six, can,
> >> bottles, tap, size, desc, ip )"." VALUES ('$beername', '$manu', '$type',
> >> '$singles', '$six', '$can', '$bottles', '$tap', '$size', '$desc', 
> >> '$ip' )";
> >>
> >> $result = mysqli_query($dbc, $query)
> >> or die('Error querying database.');
> >>
> >>
> >> mysqli_close($dbc);
> >>
> >>
> >>
> >> -- 
> >> Gary
> >
> >
> > Read Ash's reply...   but basically, you're running the query with POST
> > variables, and inserting them on page display as well as on form submit.
> >
> > can you ensure that you can connect from the command line?
> >
> >
> > if you may take some criticism, you should rethink your database design,
> > as well as the page flow/design... you should either post the form to a
> > new page, or if it is back to itself, you should check to see that you
> > have in fact posted it before just blindly inserting into the database
> > (as currently, every time you view the page, you will insert into the
> > database, even if completely empty values).
> >
> 
> Steve
> 
> Thank you for your reply.
> 
> I did not see a reply from Ashley, but I would love to read it.
> 
> I always welcome criticism, however this form is for the owner of a bar 
> where he will inputing his list of beer that he sells.  The rest of the code 
> that is not there is I will have the list then echo to screen below the 
> form.  This is an internal list only, no customers will be seeing it....if 
> that makes any difference to your suggestion.
> 
> On your one point
> 
> <<(as currently, every time you view the page, you will insert into the
> database, even if completely empty values).>>
> 
> Is this always the case when you process a form onto itself?  Or is there a 
> fix?
> 
> I did just create a new page, inserted the script onto it, and got the same 
> error message.
> 
> Again, thank you for your help.
> 
> Gary 


Gary

the line:
<input name="submit" type="submit" value="Submit" />

is the submit part... if you encapsulate the DB part of the code,
within:
if($_POST['submit'] == 'Submit')
{
    # do db stuff in here and value sanitizing
}

basically, what that does is the submit button is name $_POST['submit']
and has the value "Submit" (the 'value' of the button) which will not be
set, until you submit the form.   Personally, I do it another way, but
but is how most people check to see if a form is submitted (i think?)

but it seems as if your issue stems from the lack of being able to
connect to the database itself, so either your login credentials are
wrong, or you dont have the mysqli connector enabled with your php in
your development box.

check your phpinfo() to ensure it is enabled.

Steve


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux