Object Oriented MySQL Deyimleri, PHP

3 Cevap php

Bugüne kadar ben bir güncelleştirme çalışırken, silmek veya select deyimi güzel çalıştığı aşağıdaki kodu var. Ben bir ekleme kullanmaya çalıştığınızda Ancak ben sorunlarla. Birisi doğru yönde bana gelin eğer ben minnettar olacaktır.

private function escape($value)
{
    if(get_magic_quotes_gpc())
        $value = stripslashes($value);
    return mysql_real_escape_string($value, $this->dbConn);
}

/**
 * Handles connection to the database.
 * Die functions are used to catch any errors.
 */
public function connect($dbHost, $dbName, $dbUser, $dbPass)
{
    $this->dbConn = mysql_connect(
        $dbHost,
        $dbUser,
        $dbPass
    ) or die(mysql_error());
    mysql_select_db($dbName, $this->dbConn) or die(mysql_error());
}

/**
 * Loads a raw SQL string into the object $dbSql variable
 */
public function prep($sql)
{
    $this->dbSql = $sql;
}

/**
 * Load bound hooks and values into object variable
 */
public function bind($hook, $value)
{
    $this->dbBind[$hook] = $this->escape($value);

}

/**
 * Runs the SQL string in $dbSql object variable
 */
public function run()
{
    $sql = $this->dbSql;
    if(is_array($this->dbBind))
        foreach($this->dbBind as $hook => $value)
            $sql = str_replace($hook, "'" . $value . "'", $sql);  
    $this->dbQuery = mysql_query($sql) or die(mysql_error());
    $this->dbBind = array();
    return $this->numRows();
}


    // Load SQL statment into object
$MyDB->prep("INSERT INTO `demo` (`id`, `name`, `score`, `dept`, `date`) VALUES '1','James Kablammo', '1205550', 'Marketing', '$date'");
// Bind a value to our :id hook
// Produces: SELECT * FROM demo_table WHERE id = '23'
$MyDB->bind(':id',1);

// Run the query
$MyDB->run();

3 Cevap

Bu, geçerli ekleme ifadeleri kullanarak başlamak için yardımcı olabilir.

VALUES ( a , b , c )

Değil

VALUES a, b , c

Ayrıca, neden şeytan sizi dize saydırma ile hazırlandı insert birleştiriyoruz?

Ne demek

$q->prep("blah blah blah VALUES ( :date , etc etc ) " );
$q->bind(":date", $date );

veya bu satırlar boyunca bir şey. Her iki teknikleri kullanarak sadece saçmadır.

: Muhtemelen gibi, çok Pars değerleri () sarılmalıdır

$MyDB->prep("INSERT INTO `demo` (`id`, `name`, `score`, `dept`, `date`) VALUES ('1','James Kablammo', '1205550', 'Marketing', '$date'"));

ARMUT DB de bir göz atın: http://pear.php.net/package/DB_DataObject

Bu size istediğiniz her şeyi yapar ve profesyoneller tarafından ayıklanan ve yazılı olmuştur (suç)