Topic: PHP OOP Inserting records into db

hello, i'm new to Object Oriented Programming and I am trying to create a class function that will insert data into my database.

i beleive i have the code correct but i'm not sure what i am doing wrong. can some one help me please?

here is my code.....

class cms{
                var $db;
        var $host;
        var $username;
        var $password;
        var $school;
        var $country;
        var $city;
        var $state;
        var $zip;

function connect(){
        $con = mysql_connect($this->host,$this->username,$this->password) or die("Could not connect to database");
        $sel =mysql_select_db($this->db) or die("Could not select database");
    }

function newSchool(){
        $sql = mysql_query("INSERT INTO schools (school, country, city, state, zip) VALUES (" . $this->school . ',' . $this->country . ',' . $this->city . ',' . $this->state . ',' . $this->zip . ")");
    }
}


and here is my other code........


<?php
include("config.php");
$cms = new cms();
$cms->connect();
if($_GET['new_school'] == "yes"){
    $cms->newSchool();
}
?>
<form action="new_school.php?new_school=yes" method="post">
                <center><table align="center" border="1">
                    <tr>
                        <td>School Name: </td><td><input type="text" name="school_name" /></td>
                    </tr>
                    <tr>
                        <td>Country: </td><td><?=$cms->country(); ?></td>
                    </tr>
                    <tr>
                        <td>City: </td><td><input type="text" name="city" /></td>
                    </tr>
                    <tr>
                        <td>State: </td><td><input type="text" name="state" /></td>
                    </tr>
                    <tr>
                        <td>Zip: </td><td><input type="text" name="zip" /></td>
                    </tr>
                    <tr>
                        <td></td><td><input type="submit" name="submit" value="Add School!" /></td>
                    </tr>
                </table>

and the config file just defines my $_POST vars for the form.

Vote up Vote down

Re: PHP OOP Inserting records into db

Hi,

What error message are you getting?

PS: can you put your code in a code block - thanks!

Stefan

Practical web design training videos: KillerSites University

Vote up Vote down

Re: PHP OOP Inserting records into db

this is my classlib.php

<?php 
//------THIS FILE WILL CONTROL MY CMS SYSTEM
class cms{
    //----------------DEFINE MY VARIABLES FOR THIS CMS CLASS   
        var $db;
        var $host;
        var $username;
        var $password;
        var $current_time;
        var $id;
        var $c_id;
        var $school;
        var $country;
        var $city;
        var $state;
        var $zip;
    //-----------------END DEFINE VARIABLES FOR THIS CLASS----
    function connect(){
        $con = mysql_connect($this->host,$this->username,$this->password) or die("Could not connect to database");
        $sel =mysql_select_db($this->db) or die("Could not select database");
    }
    function post(){
        $sql = "SELECT * FROM posts WHERE school_id = '".$this->id."' AND class_id = '" . $this->c_id . "' ORDER BY post_id DESC";
        $res = mysql_query($sql) or die(mysql_error());
    while($row = mysql_fetch_assoc($res)){
        echo '<h2 class="title"><a href="#">' . $row['post_title'] . '</a></h2>';
        echo '<p class="meta">' . $row['post_time'] . '<br /><span>Posted by <a href="#">' . $row['username'] . '</a></span></p>';
        echo '<div class="entry">
                    <p>'
.$row['post_body'] . '</p>';
        echo '</div>';
        }
    }   
    function adminPost(){
        $sql = "SELECT * FROM admin_posts ORDER BY id DESC";
        $res = mysql_query($sql) or die(mysql_error());
    while($row = mysql_fetch_assoc($res)){
        echo '<h2 class="title"><a href="#">' . $row['post_title'] . '</a></h2>';
        echo '<p class="meta">' . $this->current_time . '<br /><span>Posted by <a href="#">' . $row['post_by'] . '</a></span></p>';
        echo '<div class="entry">
                    <p>'
. $row['post_body'] . '</p>';
        echo '</div>';
        }
    }
    function newSchool(){
        $sql = mysql_query("INSERT INTO schools (school, country, city, state, zip) VALUES (" . $this->school . ',' . $this->country . ',' . $this->city . ',' . $this->state . ',' . $this->zip . ")");
    }
    function schoolList(){
        $sql = "SELECT * FROM schools";
        $res = mysql_query($sql) or die(mysql_error());
    while($row = mysql_fetch_assoc($res)){
        echo '<div class="entry">
                    <p><a href="classes.php?school_id='
. $row['id'] . '">' . $row['school'] . '</a></p>';
        echo '</div>';
        }
    }   
    function classList(){
        $sql = "SELECT * FROM classes WHERE school_id = '".$this->id."' ORDER BY class_type DESC";
        $res = mysql_query($sql) or die(mysql_error());
    while($row = mysql_fetch_assoc($res)){
        echo '<div class="entry">
                    <p><a href="class_posts.php?school_id='
. $row['id'] . '&class_id=' . $row['class_id'] . '">' . $row['class_type'] . '</a> - With ' . $row['teacher'] . '</p>';
        echo '</div>';
        }
    }   
    function country(){
        echo '<select name="country">
      <option value=" " selected>(please select a country)</option>
      <option value="--">none</option>
      <option value="AF">Afghanistan</option>
      <option value="AL">Albania</option>
      <option value="DZ">Algeria</option>
      <option value="AS">American Samoa</option>
      <option value="AD">Andorra</option>
      <option value="AO">Angola</option>
      <option value="AI">Anguilla</option>
      <option value="AQ">Antarctica</option>
      <option value="AG">Antigua and Barbuda</option>
      <option value="AR">Argentina</option>
      <option value="AM">Armenia</option>
      <option value="AW">Aruba</option>
      <option value="AU">Australia</option>
      <option value="AT">Austria</option>
      <option value="AZ">Azerbaijan</option>
      <option value="BS">Bahamas</option>
      <option value="BH">Bahrain</option>
      <option value="BD">Bangladesh</option>
      <option value="BB">Barbados</option>
      <option value="BY">Belarus</option>
      <option value="BE">Belgium</option>
      <option value="BZ">Belize</option>
      <option value="BJ">Benin</option>
      <option value="BM">Bermuda</option>
      <option value="BT">Bhutan</option>
      <option value="BO">Bolivia</option>
      <option value="BA">Bosnia and Herzegowina</option>
      <option value="BW">Botswana</option>
      <option value="BV">Bouvet Island</option>
      <option value="BR">Brazil</option>
      <option value="IO">British Indian Ocean Territory</option>
      <option value="BN">Brunei Darussalam</option>
      <option value="BG">Bulgaria</option>
      <option value="BF">Burkina Faso</option>
      <option value="BI">Burundi</option>
      <option value="KH">Cambodia</option>
      <option value="CM">Cameroon</option>
      <option value="CA">Canada</option>
      <option value="CV">Cape Verde</option>
      <option value="KY">Cayman Islands</option>
      <option value="CF">Central African Republic</option>
      <option value="TD">Chad</option>
      <option value="CL">Chile</option>
      <option value="CN">China</option>
      <option value="CX">Christmas Island</option>
      <option value="CC">Cocos (Keeling) Islands</option>
      <option value="CO">Colombia</option>
      <option value="KM">Comoros</option>
      <option value="CG">Congo</option>
      <option value="CD">Congo, the Democratic Republic of the</option>
      <option value="CK">Cook Islands</option>
      <option value="CR">Costa Rica</option>
      <option value="CI">Cote d\'
Ivoire</option>
      <option value="HR">Croatia (Hrvatska)</option>
      <option value="CU">Cuba</option>
      <option value="CY">Cyprus</option>
      <option value="CZ">Czech Republic</option>
      <option value="DK">Denmark</option>
      <option value="DJ">Djibouti</option>
      <option value="DM">Dominica</option>
      <option value="DO">Dominican Republic</option>
      <option value="TP">East Timor</option>
      <option value="EC">Ecuador</option>
      <option value="EG">Egypt</option>
      <option value="SV">El Salvador</option>
      <option value="GQ">Equatorial Guinea</option>
      <option value="ER">Eritrea</option>
      <option value="EE">Estonia</option>
      <option value="ET">Ethiopia</option>
      <option value="FK">Falkland Islands (Malvinas)</option>
      <option value="FO">Faroe Islands</option>
      <option value="FJ">Fiji</option>
      <option value="FI">Finland</option>
      <option value="FR">France</option>
      <option value="FX">France, Metropolitan</option>
      <option value="GF">French Guiana</option>
      <option value="PF">French Polynesia</option>
      <option value="TF">French Southern Territories</option>
      <option value="GA">Gabon</option>
      <option value="GM">Gambia</option>
      <option value="GE">Georgia</option>
      <option value="DE">Germany</option>
      <option value="GH">Ghana</option>
      <option value="GI">Gibraltar</option>
      <option value="GR">Greece</option>
      <option value="GL">Greenland</option>
      <option value="GD">Grenada</option>
      <option value="GP">Guadeloupe</option>
      <option value="GU">Guam</option>
      <option value="GT">Guatemala</option>
      <option value="GN">Guinea</option>
      <option value="GW">Guinea-Bissau</option>
      <option value="GY">Guyana</option>
      <option value="HT">Haiti</option>
      <option value="HM">Heard and Mc Donald Islands</option>
      <option value="VA">Holy See (Vatican City State)</option>
      <option value="HN">Honduras</option>
      <option value="HK">Hong Kong</option>
      <option value="HU">Hungary</option>
      <option value="IS">Iceland</option>
      <option value="IN">India</option>
      <option value="ID">Indonesia</option>
      <option value="IR">Iran (Islamic Republic of)</option>
      <option value="IQ">Iraq</option>
      <option value="IE">Ireland</option>
      <option value="IL">Israel</option>
      <option value="IT">Italy</option>
      <option value="JM">Jamaica</option>
      <option value="JP">Japan</option>
      <option value="JO">Jordan</option>
      <option value="KZ">Kazakhstan</option>
      <option value="KE">Kenya</option>
      <option value="KI">Kiribati</option>
      <option value="KP">Korea, Democratic People\'s Republic of</option>
      <option value="KR">Korea, Republic of</option>
      <option value="KW">Kuwait</option>
      <option value="KG">Kyrgyzstan</option>
      <option value="LA">Lao People\'
s Democratic Republic</option>
      <option value="LV">Latvia</option>
      <option value="LB">Lebanon</option>
      <option value="LS">Lesotho</option>
      <option value="LR">Liberia</option>
      <option value="LY">Libyan Arab Jamahiriya</option>
      <option value="LI">Liechtenstein</option>
      <option value="LT">Lithuania</option>
      <option value="LU">Luxembourg</option>
      <option value="MO">Macau</option>
      <option value="MK">Macedonia, The Former Yugoslav Republic of</option>
      <option value="MG">Madagascar</option>
      <option value="MW">Malawi</option>
      <option value="MY">Malaysia</option>
      <option value="MV">Maldives</option>
      <option value="ML">Mali</option>
      <option value="MT">Malta</option>
      <option value="MH">Marshall Islands</option>
      <option value="MQ">Martinique</option>
      <option value="MR">Mauritania</option>
      <option value="MU">Mauritius</option>
      <option value="YT">Mayotte</option>
      <option value="MX">Mexico</option>
      <option value="FM">Micronesia, Federated States of</option>
      <option value="MD">Moldova, Republic of</option>
      <option value="MC">Monaco</option>
      <option value="MN">Mongolia</option>
      <option value="MS">Montserrat</option>
      <option value="MA">Morocco</option>
      <option value="MZ">Mozambique</option>
      <option value="MM">Myanmar</option>
      <option value="NA">Namibia</option>
      <option value="NR">Nauru</option>
      <option value="NP">Nepal</option>
      <option value="NL">Netherlands</option>
      <option value="AN">Netherlands Antilles</option>
      <option value="NC">New Caledonia</option>
      <option value="NZ">New Zealand</option>
      <option value="NI">Nicaragua</option>
      <option value="NE">Niger</option>
      <option value="NG">Nigeria</option>
      <option value="NU">Niue</option>
      <option value="NF">Norfolk Island</option>
      <option value="MP">Northern Mariana Islands</option>
      <option value="NO">Norway</option>
      <option value="OM">Oman</option>
      <option value="PK">Pakistan</option>
      <option value="PW">Palau</option>
      <option value="PA">Panama</option>
      <option value="PG">Papua New Guinea</option>
      <option value="PY">Paraguay</option>
      <option value="PE">Peru</option>
      <option value="PH">Philippines</option>
      <option value="PN">Pitcairn</option>
      <option value="PL">Poland</option>
      <option value="PT">Portugal</option>
      <option value="PR">Puerto Rico</option>
      <option value="QA">Qatar</option>
      <option value="RE">Reunion</option>
      <option value="RO">Romania</option>
      <option value="RU">Russian Federation</option>
      <option value="RW">Rwanda</option>
      <option value="KN">Saint Kitts and Nevis</option>
      <option value="LC">Saint LUCIA</option>
      <option value="VC">Saint Vincent and the Grenadines</option>
      <option value="WS">Samoa</option>
      <option value="SM">San Marino</option>
      <option value="ST">Sao Tome and Principe</option>
      <option value="SA">Saudi Arabia</option>
      <option value="SN">Senegal</option>
      <option value="SC">Seychelles</option>
      <option value="SL">Sierra Leone</option>
      <option value="SG">Singapore</option>
      <option value="SK">Slovakia (Slovak Republic)</option>
      <option value="SI">Slovenia</option>
      <option value="SB">Solomon Islands</option>
      <option value="SO">Somalia</option>
      <option value="ZA">South Africa</option>
      <option value="GS">South Georgia and the South Sandwich Islands</option>
      <option value="ES">Spain</option>
      <option value="LK">Sri Lanka</option>
      <option value="SH">St. Helena</option>
      <option value="PM">St. Pierre and Miquelon</option>
      <option value="SD">Sudan</option>
      <option value="SR">Suriname</option>
      <option value="SJ">Svalbard and Jan Mayen Islands</option>
      <option value="SZ">Swaziland</option>
      <option value="SE">Sweden</option>
      <option value="CH">Switzerland</option>
      <option value="SY">Syrian Arab Republic</option>
      <option value="TW">Taiwan, Province of China</option>
      <option value="TJ">Tajikistan</option>
      <option value="TZ">Tanzania, United Republic of</option>
      <option value="TH">Thailand</option>
      <option value="TG">Togo</option>
      <option value="TK">Tokelau</option>
      <option value="TO">Tonga</option>
      <option value="TT">Trinidad and Tobago</option>
      <option value="TN">Tunisia</option>
      <option value="TR">Turkey</option>
      <option value="TM">Turkmenistan</option>
      <option value="TC">Turks and Caicos Islands</option>
      <option value="TV">Tuvalu</option>
      <option value="UG">Uganda</option>
      <option value="UA">Ukraine</option>
      <option value="AE">United Arab Emirates</option>
      <option value="GB">United Kingdom</option>
      <option value="US">United States</option>
      <option value="UM">United States Minor Outlying Islands</option>
      <option value="UY">Uruguay</option>
      <option value="UZ">Uzbekistan</option>
      <option value="VU">Vanuatu</option>
      <option value="VE">Venezuela</option>
      <option value="VN">Viet Nam</option>
      <option value="VG">Virgin Islands (British)</option>
      <option value="VI">Virgin Islands (U.S.)</option>
      <option value="WF">Wallis and Futuna Islands</option>
      <option value="EH">Western Sahara</option>
      <option value="YE">Yemen</option>
      <option value="YU">Yugoslavia</option>
      <option value="ZM">Zambia</option>
      <option value="ZW">Zimbabwe</option>
      </select>';
    }   
}//------END CLASS
?>

this is my config.php

<?php 
include("classes/classlib.php");
//----HERE IS THE MAIN WEBSITE STUFF--------
$web_title = "School-Cheats.com";
$web_slogan = "We Have All The Answers!";
date_default_timezone_set('America/New_York');
//------------------------
$cms = new cms();
$cms->host = 'localhost';
$cms->username = 'moneypok_school';
$cms->password = 'pass123';
$cms->db = 'moneypok_school';
$cms->current_time = date('D,F j, Y, h:i:s A');
$cms->id = $_GET['school_id'];
$cms->c_id = $_GET['class_id'];
 
$cms->school = $_POST['school_name'];
$cms->country = $_POST['country'];
$cms->city = $_POST['city'];
$cms->state = $_POST['state'];
$cms->zip = $_POST['zip'];
 
//-------------------------
?>

this is my main file

<?php session_start();
include("config.php");
//connect to the database
$cms->connect();
if($_GET['new_school'] == "yes"){
    $cms->newSchool();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<div id="wrapper">
    <div id="logo">
        <h1><a href="#"><?php echo $web_title; ?> </a></h1>
        <p><em><?php echo $web_slogan; ?> </em></p>
    </div>
    <hr />
    <!-- end #logo -->
    <div id="header">
        <div id="menu">
            <ul>
                <li><a href="index.php" class="first">Home</a></li>
                <li class="current_page_item"><a href="#">Blog</a></li>
                <li><a href="#">Photos</a></li>
                <li><a href="#">About</a></li>
                <li><a href="members/login.php">Login</a></li>
                <li><a href="register.php">Register</a></li>
            </ul>
        </div>
        <!-- end #menu -->
        <div id="search">
          <form method="get" action="">
                <fieldset>
                <input type="text" name="s" id="search-text" size="15" />
                <input type="submit" id="search-submit" value="Find School!" />
                </fieldset>
            </form>
        </div>
        <!-- end #search -->
    </div>
    <!-- end #header -->
    <!-- end #header-wrapper -->
    <div id="page">
    <div id="page-bgtop">
        <div id="content">
            <div class="post">
              <div class="entry">
                <p style="padding-left:250px;"><strong>Fill out the form to add a your school!</strong></p>
                <p><form action="new_school.php?new_school=yes" method="post">
                <center><table align="center" border="1">
                    <tr>
                        <td>School Name: </td><td><input type="text" name="school_name" /></td>
                    </tr>
                    <tr>
                        <td>Country: </td><td><?=$cms->country(); ?></td>
                    </tr>
                    <tr>
                        <td>City: </td><td><input type="text" name="city" /></td>
                    </tr>
                    <tr>
                        <td>State: </td><td><input type="text" name="state" /></td>
                    </tr>
                    <tr>
                        <td>Zip: </td><td><input type="text" name="zip" /></td>
                    </tr>
                    <tr>
                        <td></td><td><input type="submit" name="submit" value="Add School!" /></td>
                    </tr>
                </table></center>
                </p>
                </div>
            </div>
      </div>
        <!-- end #content -->
        <div id="sidebar">
            <ul>
                <li>
                    <h2>Lates News </h2>
                    <p>School-Cheats.com is now up and running! Tell everyone about this and lets all be lazy cheaters! </p>
                </li>
            </ul>
        </div>
        <!-- end #sidebar -->
        <div style="clear: both;">&nbsp;</div>
    </div>
    </div>
    <!-- end #page -->
    <div id="footer">
        <p>Copyright (c) 2009-2010 <?php echo $web_title; ?>. All rights reserved..</p>
    </div>
    <!-- end #footer -->
</div>
</body>
</html>

and i don't seem to get any errors but the code doesn't seem to work either.
it doesn't insert the values into the database

Vote up Vote down

Re: PHP OOP Inserting records into db

and stefan i was looking through your web design business section where you were talking about web design contracts and how they are necessary.....

i found some useful contracts on the web that i would like to share with you. I'm not sure if you have posted the contracts online or not but i have the following:

  • Website Preparation Worksheet

  • Website design Contract

  • Website Maintenance Contract

and i will be more than happy to share them with killersites. I beleive you should put them somewehre where other designers can use the templates as well.  big_smile

Vote up Vote down

Re: PHP OOP Inserting records into db

jbwebdesign wrote:

and i will be more than happy to share them with killersites. I beleive you should put them somewehre where other designers can use the templates as well.

Cool. I just haven't had time to post anything myself.

Just stick them in a zip and upload them to the forum ... we have a business of web design forum to do that.

Let me know when you've placed them.

Thanks,

Stefan

Practical web design training videos: KillerSites University

Vote up Vote down

Re: PHP OOP Inserting records into db

In function newSchool(), use a try-catch block to get the results from the query. Or simply use a return and echo out the value of $sql.

Does that make sense?

Stefan

Practical web design training videos: KillerSites University

Vote up Vote down

Re: PHP OOP Inserting records into db

i'm not sure what you mean by "try-catch block" but i do believe i understand the return piece of it from your OOP video tutorial.

should i do it like this??:

function newSchool(){
        $sql = mysql_query("INSERT INTO schools (school, country, city, state, zip) VALUES (" . $this->school . ',' . $this->country . ',' . $this->city . ',' . $this->state . ',' . $this->zip . ")");
         return $sql;
    }

Vote up Vote down

Re: PHP OOP Inserting records into db

yea. then try echoing that to see what you get.

Practical web design training videos: KillerSites University

Vote up Vote down

Re: PHP OOP Inserting records into db

i tryed it and i didn't get anything.... hmm it's still not inserting into the database.

i don't seem to get any errors how ever.


by the way, i have uploaded the .zip with the contracts to the business forums section

Vote up Vote down

Re: PHP OOP Inserting records into db

do you think the problem is because i am not inserting it as an array?

Vote up Vote down

Re: PHP OOP Inserting records into db

Hmm ... have you tested to see if you can select data from the database?

Also, have you test the SQL statements in a simpler context .. like say in a php myAdmin.

You need to first fix your code so you can get SQL error message - you are kinda driving blind otherwise.

Stefan

Practical web design training videos: KillerSites University

Vote up Vote down

Re: PHP OOP Inserting records into db

I found a different opensource database class file that allows me to insert, update, and delete records. i'm not sure what my error is but i am using this new class that i found and it works fine.

here is the class:

<?php
# Name: Database.class.php
# File Description: MySQL Class to allow easy and clean access to common mysql commands
# Author: ricocheting
# Web: http://www.ricocheting.com/
# Update: 2009-12-17
# Version: 2.2.2
# Copyright 2003 ricocheting.com
 
 
/*
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

 
 
 
//require("config.inc.php");
//$db = new Database(DB_SERVER, DB_USER, DB_PASS, DB_DATABASE);
 
 
###################################################################################################
###################################################################################################
###################################################################################################
class Database {
 
 
var $server   = ""; //database server
var $user     = ""; //database login name
var $pass     = ""; //database login password
var $database = ""; //database name
var $pre      = ""; //table prefix
 
 
#######################
//internal info
var $error = "";
var $errno = 0;
 
//number of rows affected by SQL query
var $affected_rows = 0;
 
var $link_id = 0;
var $query_id = 0;
 
 
#-#############################################
# desc: constructor
function Database($server, $user, $pass, $database, $pre=''){
    $this->server=$server;
    $this->user=$user;
    $this->pass=$pass;
    $this->database=$database;
    $this->pre=$pre;
}#-#constructor()
 
 
#-#############################################
# desc: connect and select database using vars above
# Param: $new_link can force connect() to open a new link, even if mysql_connect() was called before with the same parameters
function connect($new_link=false) {
    $this->link_id=@mysql_connect($this->server,$this->user,$this->pass,$new_link);
 
    if (!$this->link_id) {//open failed
        $this->oops("Could not connect to server: <b>$this->server</b>.");
        }
 
    if(!@mysql_select_db($this->database, $this->link_id)) {//no database
        $this->oops("Could not open database: <b>$this->database</b>.");
        }
 
    // unset the data so it can't be dumped
    $this->server='';
    $this->user='';
    $this->pass='';
    $this->database='';
}#-#connect()
 
 
#-#############################################
# desc: close the connection
function close() {
    if(!@mysql_close($this->link_id)){
        $this->oops("Connection close failed.");
    }
}#-#close()
 
 
#-#############################################
# Desc: escapes characters to be mysql ready
# Param: string
# returns: string
function escape($string) {
    if(get_magic_quotes_runtime()) $string = stripslashes($string);
    return @mysql_real_escape_string($string,$this->link_id);
}#-#escape()
 
 
#-#############################################
# Desc: executes SQL query to an open connection
# Param: (MySQL query) to execute
# returns: (query_id) for fetching results etc
function query($sql) {
    // do query
    $this->query_id = @mysql_query($sql, $this->link_id);
 
    if (!$this->query_id) {
        $this->oops("<b>MySQL Query fail:</b> $sql");
        return 0;
    }
 
    $this->affected_rows = @mysql_affected_rows($this->link_id);
 
    return $this->query_id;
}#-#query()
 
 
#-#############################################
# desc: fetches and returns results one line at a time
# param: query_id for mysql run. if none specified, last used
# return: (array) fetched record(s)
function fetch_array($query_id=-1) {
    // retrieve row
    if ($query_id!=-1) {
        $this->query_id=$query_id;
    }
 
    if (isset($this->query_id)) {
        $record = @mysql_fetch_assoc($this->query_id);
    }else{
        $this->oops("Invalid query_id: <b>$this->query_id</b>. Records could not be fetched.");
    }
 
    return $record;
}#-#fetch_array()
 
 
#-#############################################
# desc: returns all the results (not one row)
# param: (MySQL query) the query to run on server
# returns: assoc array of ALL fetched results
function fetch_all_array($sql) {
    $query_id = $this->query($sql);
    $out = array();
 
    while ($row = $this->fetch_array($query_id, $sql)){
        $out[] = $row;
    }
 
    $this->free_result($query_id);
    return $out;
}#-#fetch_all_array()
 
 
#-#############################################
# desc: frees the resultset
# param: query_id for mysql run. if none specified, last used
function free_result($query_id=-1) {
    if ($query_id!=-1) {
        $this->query_id=$query_id;
    }
    if($this->query_id!=0 && !@mysql_free_result($this->query_id)) {
        $this->oops("Result ID: <b>$this->query_id</b> could not be freed.");
    }
}#-#free_result()
 
 
#-#############################################
# desc: does a query, fetches the first row only, frees resultset
# param: (MySQL query) the query to run on server
# returns: array of fetched results
function query_first($query_string) {
    $query_id = $this->query($query_string);
    $out = $this->fetch_array($query_id);
    $this->free_result($query_id);
    return $out;
}#-#query_first()
 
 
#-#############################################
# desc: does an update query with an array
# param: table (no prefix), assoc array with data (doesn't need escaped), where condition
# returns: (query_id) for fetching results etc
function query_update($table, $data, $where='1') {
    $q="UPDATE `".$this->pre.$table."` SET ";
 
    foreach($data as $key=>$val) {
        if(strtolower($val)=='null') $q.= "`$key` = NULL, ";
        elseif(strtolower($val)=='now()') $q.= "`$key` = NOW(), ";
        else $q.= "`$key`='".$this->escape($val)."', ";
    }
 
    $q = rtrim($q, ', ') . ' WHERE '.$where.';';
 
    return $this->query($q);
}#-#query_update()
 
 
#-#############################################
# desc: does an insert query with an array
# param: table (no prefix), assoc array with data
# returns: id of inserted record, false if error
function query_insert($table, $data) {
    $q="INSERT INTO `".$this->pre.$table."` ";
    $v=''; $n='';
 
    foreach($data as $key=>$val) {
        $n.="`$key`, ";
        if(strtolower($val)=='null') $v.="NULL, ";
        elseif(strtolower($val)=='now()') $v.="NOW(), ";
        else $v.= "'".$this->escape($val)."', ";
    }
 
    $q .= "(". rtrim($n, ', ') .") VALUES (". rtrim($v, ', ') .");";
 
    if($this->query($q)){
        //$this->free_result();
        return mysql_insert_id($this->link_id);
    }
    else return false;
 
}#-#query_insert()
 
 
#-#############################################
# desc: throw an error message
# param: [optional] any custom error to display
function oops($msg='') {
    if($this->link_id>0){
        $this->error=mysql_error($this->link_id);
        $this->errno=mysql_errno($this->link_id);
    }
    else{
        $this->error=mysql_error();
        $this->errno=mysql_errno();
    }
    ?>
        <table align="center" border="1" cellspacing="0" style="background:white;color:black;width:80%;">
        <tr><th colspan=2>Database Error</th></tr>
        <tr><td align="right" valign="top">Message:</td><td><?php echo $msg; ?></td></tr>
        <?php if(strlen($this->error)>0) echo '<tr><td align="right" valign="top" nowrap>MySQL Error:</td><td>'.$this->error.'</td></tr>'; ?>
        <tr><td align="right">Date:</td><td><?php echo date("l, F j, Y \a\\t g:i:s A"); ?></td></tr>
        <tr><td align="right">Script:</td><td><a href="<?php echo @$_SERVER['REQUEST_URI']; ?>"><?php echo @$_SERVER['REQUEST_URI']; ?></a></td></tr>
        <?php if(strlen(@$_SERVER['HTTP_REFERER'])>0) echo '<tr><td align="right">Referer:</td><td><a href="'.@$_SERVER['HTTP_REFERER'].'">'.@$_SERVER['HTTP_REFERER'].'</a></td></tr>'; ?>
        </table>
    <?php
}#-#oops()
 
 
}//CLASS Database
###################################################################################################
 
?>

and here is the config.inc.php file

<?php
//database server
define('DB_SERVER', "localhost");
//database login name
define('DB_USER', "moneypok_school");
//database login password
define('DB_PASS', "pass123");
 
//database name
define('DB_DATABASE', "moneypok_school");
 
//smart to define your table names also
define('TABLE_USERS', "users");
define('TABLE_SCHOOLS', "schools");
define('TABLE_CLASSES', "classes");
define('TABLE_POSTS', "posts");
define('TABLE_ADMIN_POST', "admin_posts");
 
?>

Vote up Vote down

Re: PHP OOP Inserting records into db

Your error was probably something trivial, like a missing quotation or something - I didn't have time to debug your code for you.

Regardless, what you can learn from this is:

- have  solid error trapping and reporting in your code so you can track down errors more easily.
- test your code in simple environments, again to to make it easier to track down code.
- use open source libraries to save time and headaches.

Stefan

Practical web design training videos: KillerSites University

Vote up Vote down

Re: PHP OOP Inserting records into db

Thanks, i will keep that in mind  smile

Vote up Vote down

Re: PHP OOP Inserting records into db

I think it's because you don't have quotes around the data fields in the sql statement. Using ',' may seem like you have the quotes, but that only creates a comma, you have to have "','"

function newSchool()
{
   $sql_command = "INSERT INTO schools (school, country, city, state, zip) VALUES ('" . $this->school . "','" . $this->country . "','" . $this->city . "','" . $this->state . "','" . $this->zip . "')";
// by placing this in a variable you can test with
  echo $sql_command;
 
  $sql = mysql_query ($sql_command);
  return $sql;
}

Vote up Vote down