Query was Empty

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
tobimichigan
Forum Commoner
Posts: 48
Joined: Sun May 10, 2009 1:35 pm

Query was Empty

Post by tobimichigan »

Please could someone help me detect what exactly could be going on with this code? Its giving a "query is empty", and its not inserting into the table user_table.

Here's the form table and $variables;

Code: Select all

 
<form action='Register_Action.php' method='post' enctype="multipart/form-data" name='register'>
  <table width='28%' border='0' align='center' cellpadding='0' cellspacing='0'>
    <tr> 
      <td colspan='2'><div align='center'>
        <p><font size='2' face='verdana'>WELCOME TO STAFFCAMS Registration FORM</font></p>
        </div></td>
    </tr>
    <tr> 
      <td width='31%'>&nbsp;</td>
      <td width='69%'>&nbsp;</td>
    </tr>
    <tr> 
      <td colspan='2'><hr></td>
    </tr>
    <tr> 
      <td height='26'><font size='2' face='verdana'>PF NO.</font></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='pfno'>
        </font></td>
    </tr>
    <tr> 
      <td height='28'><font size='2' face='verdana'>LEDGER NO.</font></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='ledgerno'>
        </font></td>
    </tr>
    <tr> 
      <td height='25'><font size='2' face='verdana'>FIRST NAME</font></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='fname'>
        </font></td>
    </tr>
    <tr> 
      <td height='25'><font size='2' face='verdana'>OTHER NAMES</font><font size='2' face='verdana'></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='oname'>
        </font></td>
    </tr>
    <tr> 
      <td height='25'><font size='2' face='verdana'>LAST NAME</font></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='lname'>
        </font></td>
    </tr>
    <tr> 
      <td height='25'><font size='2' face='verdana'>STATE OF ORIGIN</font></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='stateoforigin'>
        </font></td>
    </tr>
    <tr> 
      <td height='25'><font size='2' face='verdana'>LOCAL GOVERNMENT</font></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='soorigin'>
        </font></td>
        </tr>
    <tr> 
      <td height='25'><font size='2' face='verdana'>NATIONALITY</font></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='Nationality'>
        </font></td>
    </tr> 
    <tr> 
      <td height='26'><font size='2' face='verdana'>Email address</font></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='email'>
        </font></td>
    </tr>
    <tr> 
      <td height='25'><font size='2' face='verdana'>RESIDENTIAL ADDRESS</font></td>
      <td><font size='2' face='verdana'>
        <input type='text' name='residentialadd' />
      </font></td>
    </tr>
    <tr>
    <td height='25'><font size='2' face='verdana'>TELEPHONE NUMBER</font></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='residentialadd'>
        </font></td>
    </tr>
    <tr>  
      <td height='25'><font size='2' face='verdana'>DEPARTMENT</font></td>
      <td><font size='2' face='verdana'>
        <input type='text' name='department' />
      </font></td>
    </tr>
    <tr>
    <td height='25'><font size='2' face='verdana'>MARITAL STATUS</font></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='marital'>
        </font></td>
    </tr>
    <tr>
    <td height='25'><font size='2' face='verdana'>SEX</font></td>
      <td><font size='2' face='verdana'> 
        <input type='text' name='sex'>
        </font></td>
    </tr>
    <tr>  
    <td height='25'><font size='2' face='verdana'>AMOUNT DEDUCTIBLE</font></td>
      <td><font size='2' face='verdana'>
        <input type='text' name='amountd' />
      </font></td>
    </tr>
    <tr> 
      <td>&nbsp;</td>
      <td><font size='2' face='verdana'> 
        <input type='submit' name='Submit' value='Register'>
        </font></td>
    </tr>
    <tr> 
      <td colspan='2'><hr></td>
    </tr>
    <tr> 
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </table>
</form><div align='center'><font size='1' face='verdana'><a href='index.php'>Back to login page</a></font></div>
<td colspan='2'><div align='center'><font size='1' face='verdana'>TM</font></div></td>
 
Here's the Register_Action.php code;

Code: Select all

 
<?php
 
$link = mysql_connect("localhost", "root", "") or die("Could not connect");
$db = mysql_select_db("lasustaffcams", $link) or die("Could not select database");
 
$amountd=$_POST['amountd'];
$dpt=$_POST['department'];
$email=$_POST['email'];
$fname =$_POST['fname'];
$id=$POST['id'];
$ledgerno =$_POST['ledgerno'];
$lga =$_POST['lga'];
$lname=$_POST['lname'];
$Nationalty=$_POST['Nationalty'];
$oname=$_POST['oname'];
$pfno=$_POST['pfno'];
$residentialaddress=$_POST['pfno'];
$soorigin=$_POST['soorigin'];
 
$today= date("Ymd H:i:s"); 
  
            
            
 
       $result = mysql_query("Insert into uaer_table(amountd,department,email,fname,ledgerno,lga,lname,nationalty,oname,pfno,residentialadd,soorigin) values('$amountd','$department','$email','$fname','$ledgerno','$lga','$nationalty','$oname',$pfno,$residentialadd,$soorigin)");
         //$result_p_ticket= mysql_query("Insert into pawn_ticket(pawn_ticket_customer_number,pawn_ticket_ticket_number,pawn_ticket_ticket_check_digit,pawn_ticket_ticket_issue_date) values('$cust_no','$pawn_ticket_number','$check_digit_only','$today')");
if (!mysql_query($result))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";
 
mysql_close($con)
                                    
                                                                            
?>
<html>
<body>
 
</body>
</html>
 
Any suggestions?
Last edited by Benjamin on Wed May 13, 2009 5:28 pm, edited 2 times in total.
Reason: Added [code=php] tags.
User avatar
requinix
Spammer :|
Posts: 6617
Joined: Wed Oct 15, 2008 2:35 am
Location: WA, USA

Re: Query was Empty

Post by requinix »

Code: Select all

$result = mysql_query("...");
if (!mysql_query($result))
$result is not a query. You can't run it through mysql_query.

Read example #2.

And have you actually checked that it's not being added? As in, looked in the table yourself?
tobimichigan
Forum Commoner
Posts: 48
Joined: Sun May 10, 2009 1:35 pm

Re: Query was Empty

Post by tobimichigan »

tasairis wrote:

Code: Select all

$result = mysql_query("...");
if (!mysql_query($result))
$result is not a query. You can't run it through mysql_query.

Read example #2.

And have you actually checked that it's not being added? As in, looked in the table yourself?
Yes I checked the table in phpmyadmin and lo its actually empty..Please what do you mean by "You can't run it through mysql_query?
User avatar
requinix
Spammer :|
Posts: 6617
Joined: Wed Oct 15, 2008 2:35 am
Location: WA, USA

Re: Query was Empty

Post by requinix »

You have an INSERT query. Good.
Then you use mysql_query to execute the statement. Since it wasn't a SELECT query you'll get back (into $result) a true or false value indicating whether the query worked or not.

So $result is not a query. In fact, it's a boolean. You cannot use $result with a call to mysql_query - for one, you already executed the query, and for two, it doesn't make sense.

Now, since the query didn't work, mysql_query must have returned false. A small change to your code makes

Code: Select all

$query = "Insert into uaer_table(amountd, department, email, fname, ledgerno, lga, lname, nationalty, oname, pfno, residentialadd, soorigin) values ('$amountd', '$department', '$email', '$fname', '$ledgerno', '$lga', '$nationalty', '$oname', $pfno, $residentialadd, $soorigin)";
if (!mysql_query($query))
   {
   die('Error: ' . mysql_error());
   }
Also, your code is not secure. Someone could ruin your site by providing bad information in the form.
You need to use mysql_real_escape_string with all form inputs to make it safe for a query. This is good for strings when you put them in quotes (like with $amountd, $department, etc) but with numbers ($pfno, $residentialadd, $soorigin) you need to use a function like intval instead.
Those links have examples. Read them.
Post Reply