-2

i need to add a prefix to the tables created with this code. What i need to do?, i tried to rename functions, but it doesn't works. i need to add table prefix too with an another file, similar to this. is it possibile without writing again the entire code?, i am a bit newbie.

<?
class DB_Sql {
var $Host     = "localhost"; // Hostname of our MySQL server.
var $Database = "my_database"; // Logical database name on that server.
var $User     = "user"; // User und Password for login.
var $Password = "";

var $Link_ID  = 0;  // Result of mysql_connect().
var $Query_ID = 0;  // Result of most recent mysql_query().
var $Record   = array();  // current mysql_fetch_array()-result.
var $Row;           // current row number.

var $Errno    = 0;  // error state of query...
var $Error    = "";
var $num_queries = 0;


function halt($msg) {
    printf("</td></tr></table><b>Database error:</b> %s<br />\n", $msg);
    printf("<b>MySQL Error</b>: %s (%s)<br />\n",
    $this->Errno,
    $this->Error);
    die("Session halted.");
}

function connect($thehost, $thedb, $theuser, $thepwd) {
    $this->Host=$thehost;
    $this->Database=$thedb;
    $this->User=$theuser;
    $this->Password=$thepwd;

    if ( 0 == $this->Link_ID ) {
        $this->Link_ID=mysql_connect($this->Host, $this->User, $this->Password);
        if (!$this->Link_ID) {
            $this->halt("Link-ID == false, connect failed");
            return false;
        }
        if (!mysql_query(sprintf("use %s",$this->Database),$this->Link_ID)) {
            $this->halt("cannot use database ".$this->Database);
            return false;
        }
        return true;
    }
    return false;
}

function free_result($query_id=-1) {
    if ($query_id!=-1) {
        $this->query_id=$query_id;
    }
}


function fetch_array($query_id=-1,$query_string="") {
    if ($query_id!=-1) {
        $this->query_id=$query_id;
    }
    if ( isset($this->query_id) ) {
        $this->record = mysql_fetch_array($this->query_id);
    } else {
        if ( !empty($query_string) ) {
            $this->halt("Invalid query id (".$this->query_id.") on this query: $query_string");
        } else {
            $this->halt("Invalid query id ".$this->query_id." specified");
        }
    }
    return $this->record;
}


function query($Query_String) {
    //  $this->connect();
    $this->num_queries++;
    #printf("<br /><font color=red><b>Debug: query = %s</b></font><br />", $Query_String); // Use for debugging
    $this->Query_ID = mysql_query($Query_String,$this->Link_ID);
    $this->Row   = 0;
    $this->Errno = mysql_errno();
    $this->Error = mysql_error();
    if (!$this->Query_ID) {
        $this->halt("Invalid SQL: ".$Query_String);
    }
    return $this->Query_ID;
}


function next_record() {
    $this->Record = mysql_fetch_array($this->Query_ID);
    $this->Row   += 1;
    $this->Errno = mysql_errno();
    $this->Error = mysql_error();
    $stat = is_array($this->Record);
    if (!$stat) {
        mysql_free_result($this->Query_ID);
        $this->Query_ID = 0;
    }
    return $stat;
}


function seek($pos) {
    $status = mysql_data_seek($this->Query_ID, $pos);
    if ($status)
    $this->Row = $pos;
    return;
}


function num_rows() {
    return mysql_num_rows($this->Query_ID);
}

function num_fields() {
    return mysql_num_fields($this->Query_ID);
}


function f($Name) {
    return $this->Record[$Name];
}

function p($Name) {
    print $this->Record[$Name];
}

function affected_rows() {
    return @mysql_affected_rows($this->Link_ID);
}



function get_temps() {
    while ($row = mysql_fetch_array($this->Query_ID)) {
        $templ[$row["id"]] = $row['con'];
    }
    echo "$templ[1]<br />$templ[2]";
}

function get_temp() {
    return mysql_fetch_array($this->Query_ID);
}

function query_first($query_string) {
    // does a query and returns first row
    $query_id = $this->query($query_string);
    $returnarray=$this->fetch_array($query_id, $query_string);
    $this->free_result($query_id);
    return $returnarray;
}


function get_tables() {
    $tables = mysql_list_tables($this->Database);

    while ($row = mysql_fetch_row($tables)) {
        $return[] = "$row[0]";
    }
    return $return;
}

function querySingle($query, $value) {
    return arrayValue($this->fetch_array($this->query($query)),$value);
}


function get_fields($table) {
    $result = mysql_query("SHOW COLUMNS FROM $table");
    if (!$result) {
        $this->halt("Invalid SQL: Could not run query: " . mysql_error());
    }
    if (mysql_num_rows($result) > 0) {
        while ($row = mysql_fetch_assoc($result)) {
            $return[] = $row['Field']."^".
            iif($row['Type'],$row['Type']." ")." ".
            iif($row['Null']==0,"NOT NULL ","NULL ")." ".
            //                  iif($row['Key'],$row['Key']." ")." ".
            "default '".$row['Default']."' ".
            iif($row['Extra'],$row['Extra']." ")."".

            iif(($row['Key'] == "PRI"), "*PRIMARY KEY (`".$row['Field']."`)").
            iif(($row['Key'] == "MUL"), "*KEY (`".$row['Field']."`)")
            ;
        }
    }
    return $return;
}


function sql_close()
{
    if($this->db_connect_id)
    {
        if($this->query_result)
        {
            @mysql_free_result($this->query_result);
        }
        $result = @mysql_close($this->db_connect_id);
        return $result;
    }
    else
    {
        return false;
    }
}



}






?>
Shadow
  • 33,525
  • 10
  • 51
  • 64
  • The vode creates html tables, nothing else. What prefixes are you talking about? – Shadow Apr 22 '16 at 22:41
  • 2
    Please dont use [the `mysql_` database extension](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), it is deprecated (gone for ever in PHP7) Specially if you are just learning PHP, spend your energies learning the `PDO` database extensions. [Start here](http://php.net/manual/en/book.pdo.php) – RiggsFolly Apr 22 '16 at 22:55

1 Answers1

0

1. Don't use mysql_*. When your host moves to PHP 7, all mysql_ functions will no longer be available. Either use the PDO system or mysqli (which has a slightly different syntax than mysql)

2. Variables

The entire point of a variable is that it changes. Now I gave your code a quick read through, and honestly I didn't see a place where the table names were set.

Examples

With your class loaded above (omitted for the sake of space and readability)

$db = new DB_Sql();
$db->connect('localhost','user','pw','database');
$result = $db->query("SELECT * FROM ".$table_prefix."users");//Or whatever your query is.
//Do what you need with the stuff.
$db->free_result($result);
$db->sql_close();

If this doesn't answer your question, you need to update your question with more information about what exactly is not working as expected. What you would like to see vs. what you actually are seeing.

Community
  • 1
  • 1
Jhecht
  • 4,407
  • 1
  • 26
  • 44