Re: OO woes

From: Date: Mon, 12 Jul 2004 20:45:14 +0000
Subject: Re: OO woes
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-190292@lists.php.net to get a copy of this message
$query = 'INSERT into aeMail set test=\''.$_POST["test"].'\''; Your quotes look screwy to me. You seem to be missing both trailing single quotes. try this: $query = 'INSERT into aeMail set test=\'''.$_POST["test"].'\'''; At 01:07 PM 7/12/2004, Matthew Sims wrote:
PHP version 5.0.0RC3 (cgi) (built: Jul 9 2004 13:18:24) I'm just getting my feet wet with OO and have run into a problem that I'm not familiar with...yet. I have a class that does a database connection and query all together. It all works nicely until....until my query has a word with quotes around it. I've tried addslashes and mysql_escape_string but when I do I get a Fatal Error. It occurs in the execute($query) function down below. I'm also using the recommended php.ini file...magic quotes off and all. ***************************************** class DB_Mysql {
  protected $user;      // Database username
  protected $pass;      // Database password
  protected $dbhost;    // Database host
  protected $dbname;    // Database name
  protected $dbh;       // Database handle
public function __construct($user, $pass, $dbhost, $dbname) {
        $this->user = $user;
        $this->pass = $pass;
        $this->dbhost = $dbhost;
        $this->dbname = $dbname;
} protected function connect() {
        $this->dbh = mysql_connect($this->dbhost, $this->user, $this->pass);
        if (!is_resource($this->dbh)) {
          throw new Exception;
        }
        if (!mysql_select_db($this->dbname, $this->dbh)) {
          throw new Exception;
        }
} public function execute($query) {
        if (!$this->dbh) {
          $this->connect();
        }
        // My $query has quotes in it
        // I try to escape the quotes
        $query = mysql_escape_string($query);
        // It causes an error
        $ret = mysql_query($query, $this->dbh);
        if (!$ret) {
          // An Exception error is thrown
          throw new Exception;
        } elseif (!is_resource($ret)) {
          return TRUE;
        } else {
          $statment = new DB_MysqlStatement($this->dbh, $query);
          return $statement;
        }
} } ***************************************** My query statement is: $query = 'INSERT into aeMail set test=\''.$_POST["test"].'\''; I call the class as follows: $dbh = new DB_Mysql("user","passwd","localhost","test"); $query = 'INSERT into aeMail set test=\''.$_POST["test"].'\''; $dbh->execute($query); If the $_POST variable does not contain any quotes, the class works perfectly. But whenever quotes are passed through, I get the following error: Fatal error: Uncaught exception 'Exception' in /www/htdocs/classes/db_class.php:53 Stack trace: #0 /www/htdocs/letter.php(51): DB_Mysql->execute('INSERT into aeM...') #1 {main} thrown in /www/htdocs/classes/db_class.php on line 53 --Matthew Sims --<http://killermookie.org> -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php


« previous php.general (#190292) next »