Re: [PHP] Noobie starting to learn OOP for databases needs help

2012-12-17 Thread tamouse mailing lists
On Sun, Dec 16, 2012 at 9:38 AM, dealTek deal...@gmail.com wrote:
 Noobie starting to learn oop for databases from here:

Cool. :)

 mysql_insert_id (depricated?) or mysqli_insert_id() (I am using mySql 5.3)

The mysqli version would be preferred, since you're using mysqli in that class.

 2 - how does one do aggrigate select queries like SELECT SUM(price) FROM 
 mytable ... what I tried seemed to fail...

Problem there is that the query method forces everything through
prepare, and you don't have a preparable statement. I'd write another
method for such single values where you won't sent it through
prepare/execute/bind, and just suck in the value and return it.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Noobie starting to learn OOP for databases needs help

2012-12-16 Thread Sebastian Krebs
2012/12/16 dealTek deal...@gmail.com

 Hi all,

 Noobie starting to learn oop for databases from here:


 https://github.com/JeffreyWay/PHP-MySQL-Database-Class/blob/master/MysqlDb.php

 I've got lots working but have a few issues:

 1 - after an insert I'd like to get the id of the new record and I'm not
 sure how to get that...

 mysql_insert_id (depricated?) or mysqli_insert_id() (I am using mySql 5.3)

 not sure where to add this... (most likely in MysqlDb.php but I don't know
 where or how...)


Instead of true let insert() return the id.

And while looking at your code:
- You wrote in your DocBlocks, that the methods returns a boolean 0 or 1.
Beside that this is wrong (0 or 1 are integers) you return either 'true' or
nothing. You should return 'false' as well.
- Returning a boolean to indicate the success of a method only makes sense,
when not successful is a valid case, but I guess when 'delete()' fail it
not be treatened as normal. You should throw an Exception instead. This
also includes: It's not required, that a method returns something in every
case. If delete() for example doesn't have to tell something, it
shouldn't.



 http://de.php.net/manual/en/function.mysql-insert-id.php

 2 - how does one do aggrigate select queries like SELECT SUM(price) FROM
 mytable ... what I tried seemed to fail...


Nothing seems to fail ;) Either it fails, or not (or it just doesn't
behave, like expected, what I see as fail too). So what happens?




 And if anyone can point to some good OOP training URL's I'd appreciate it.

 Thanks in advance for any assistance...







 --
 Thanks,
 Dave - DealTek
 deal...@gmail.com
 [db-12]


 --
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php




-- 
github.com/KingCrunch


Re: [PHP] Noobie starting to learn OOP for databases needs help

2012-12-16 Thread Matijn Woudt
On Sun, Dec 16, 2012 at 4:38 PM, dealTek deal...@gmail.com wrote:

 Hi all,

 Noobie starting to learn oop for databases from here:


 https://github.com/JeffreyWay/PHP-MySQL-Database-Class/blob/master/MysqlDb.php

 I've got lots working but have a few issues:

 1 - after an insert I'd like to get the id of the new record and I'm not
 sure how to get that...

 mysql_insert_id (depricated?) or mysqli_insert_id() (I am using mySql 5.3)

 not sure where to add this... (most likely in MysqlDb.php but I don't know
 where or how...)

 http://de.php.net/manual/en/function.mysql-insert-id.php



try SELECT LAST_INSERT_ID();
it should give you the id of the last inserted row (on a connection basis).





 2 - how does one do aggrigate select queries like SELECT SUM(price) FROM
 mytable ... what I tried seemed to fail...


Please show is exact query that failes, and give the error it returns.



 And if anyone can point to some good OOP training URL's I'd appreciate it.

 Thanks in advance for any assistance...


Note sure what OOP has to do with MySQL, but I'd say google for PHP OOP and
there's plenty of good stuff available.

- Matijn


Re: [PHP] Noobie starting to learn OOP for databases needs help

2012-12-16 Thread dealTek

On Dec 16, 2012, at 10:08 AM, Sebastian Krebs krebs@gmail.com wrote:

 2012/12/16 dealTek deal...@gmail.com
 
 Hi all,
 
 Noobie starting to learn oop for databases from here:
 
 
 https://github.com/JeffreyWay/PHP-MySQL-Database-Class/blob/master/MysqlDb.php
 
 I've got lots working but have a few issues:
 
 1 - after an insert I'd like to get the id of the new record and I'm not
 sure how to get that...
 
 mysql_insert_id (depricated?) or mysqli_insert_id() (I am using mySql 5.3)
 
 not sure where to add this... (most likely in MysqlDb.php but I don't know
 where or how...)
 
 
 Instead of true let insert() return the id.
 
 And while looking at your code:
 - You wrote in your DocBlocks, that the methods returns a boolean 0 or 1.
 Beside that this is wrong (0 or 1 are integers) you return either 'true' or
 nothing. You should return 'false' as well.
 - Returning a boolean to indicate the success of a method only makes sense,
 when not successful is a valid case, but I guess when 'delete()' fail it
 not be treatened as normal. You should throw an Exception instead. This
 also includes: It's not required, that a method returns something in every
 case. If delete() for example doesn't have to tell something, it
 shouldn't.
 
 
 
 http://de.php.net/manual/en/function.mysql-insert-id.php
 
 2 - how does one do aggrigate select queries like SELECT SUM(price) FROM
 mytable ... what I tried seemed to fail...
 
 
 Nothing seems to fail ;) Either it fails, or not (or it just doesn't
 behave, like expected, what I see as fail too). So what happens?
 

Hi Sebastian,

Of course you're right well it does fail here...

when I try a page with this...

$results = $db-query('SELECT SUM(price) FROM tbl_1218');

the error is
Fatal error: Problem preparing query in /Users/me/Sites/db/test/sqldb.php on 
line 281


   /**
* Method attempts to prepare the SQL query
* and throws an error if there was a problem.
*/
   protected function _prepareQuery() 
   {
  //echo $this-_query; rev this is now fixed with this update
  if (!$stmt = $this-_mysql-prepare($this-_query)) {
 trigger_error(Problem preparing query, E_USER_ERROR); --- this 
is line 281
  }
  return $stmt;
   }




 
 
 
 And if anyone can point to some good OOP training URL's I'd appreciate it.
 
 Thanks in advance for any assistance...
 
 
 
 
 
 
 
 --
 Thanks,
 Dave - DealTek
 deal...@gmail.com
 [db-12]
 
 
 --
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php
 
 
 
 
 -- 
 github.com/KingCrunch


--
Thanks,
Dave - DealTek
deal...@gmail.com
[db-12]



Re: [PHP] Noobie starting to learn OOP for databases needs help

2012-12-16 Thread David OBrien
On Sun, Dec 16, 2012 at 2:08 PM, Matijn Woudt tijn...@gmail.com wrote:

 On Sun, Dec 16, 2012 at 4:38 PM, dealTek deal...@gmail.com wrote:

  Hi all,
 
  Noobie starting to learn oop for databases from here:
 
 
 
 https://github.com/JeffreyWay/PHP-MySQL-Database-Class/blob/master/MysqlDb.php
 
  I've got lots working but have a few issues:
 
  1 - after an insert I'd like to get the id of the new record and I'm not
  sure how to get that...
 
  mysql_insert_id (depricated?) or mysqli_insert_id() (I am using mySql
 5.3)
 
  not sure where to add this... (most likely in MysqlDb.php but I don't
 know
  where or how...)
 
  http://de.php.net/manual/en/function.mysql-insert-id.php



 try SELECT LAST_INSERT_ID();
 it should give you the id of the last inserted row (on a connection basis).



 
 
  2 - how does one do aggrigate select queries like SELECT SUM(price) FROM
  mytable ... what I tried seemed to fail...
 
 
 Please show is exact query that failes, and give the error it returns.


 
  And if anyone can point to some good OOP training URL's I'd appreciate
 it.
 
  Thanks in advance for any assistance...
 
 
 Note sure what OOP has to do with MySQL, but I'd say google for PHP OOP and
 there's plenty of good stuff available.

 - Matijn


I'd do

select sum(price) as price

that way the column name returned is price and not a derived column name


Re: [PHP] Noobie starting to learn OOP for databases needs help

2012-12-16 Thread Sebastian Krebs
2012/12/17 dealTek deal...@gmail.com


 On Dec 16, 2012, at 10:08 AM, Sebastian Krebs krebs@gmail.com wrote:

  2012/12/16 dealTek deal...@gmail.com
 
  Hi all,
 
  Noobie starting to learn oop for databases from here:
 
 
 
 https://github.com/JeffreyWay/PHP-MySQL-Database-Class/blob/master/MysqlDb.php
 
  I've got lots working but have a few issues:
 
  1 - after an insert I'd like to get the id of the new record and I'm not
  sure how to get that...
 
  mysql_insert_id (depricated?) or mysqli_insert_id() (I am using mySql
 5.3)
 
  not sure where to add this... (most likely in MysqlDb.php but I don't
 know
  where or how...)
 
 
  Instead of true let insert() return the id.
 
  And while looking at your code:
  - You wrote in your DocBlocks, that the methods returns a boolean 0 or 1.
  Beside that this is wrong (0 or 1 are integers) you return either 'true'
 or
  nothing. You should return 'false' as well.
  - Returning a boolean to indicate the success of a method only makes
 sense,
  when not successful is a valid case, but I guess when 'delete()' fail
 it
  not be treatened as normal. You should throw an Exception instead. This
  also includes: It's not required, that a method returns something in
 every
  case. If delete() for example doesn't have to tell something, it
  shouldn't.
 
 
 
  http://de.php.net/manual/en/function.mysql-insert-id.php
 
  2 - how does one do aggrigate select queries like SELECT SUM(price)
 FROM
  mytable ... what I tried seemed to fail...
 
 
  Nothing seems to fail ;) Either it fails, or not (or it just doesn't
  behave, like expected, what I see as fail too). So what happens?
 

 Hi Sebastian,

 Of course you're right well it does fail here...

 when I try a page with this...

 $results = $db-query('SELECT SUM(price) FROM tbl_1218');

 the error is
 Fatal error: Problem preparing query in /Users/me/Sites/db/test/sqldb.php
 on line 281


/**
 * Method attempts to prepare the SQL query
 * and throws an error if there was a problem.
 */
protected function _prepareQuery()
{
   //echo $this-_query; rev this is now fixed with this update
   if (!$stmt = $this-_mysql-prepare($this-_query)) {
  trigger_error(Problem preparing query, E_USER_ERROR); ---
 this is line 281
   }
   return $stmt;
}


Use mysqli_error() to get the _real_ error. By the way it's better to use
exceptions

http://php.net/mysqli.error.php
http://php.net/mysqli.error-list
http://php.net/mysqli.error





 
 
 
  And if anyone can point to some good OOP training URL's I'd appreciate
 it.
 
  Thanks in advance for any assistance...
 
 
 
 
 
 
 
  --
  Thanks,
  Dave - DealTek
  deal...@gmail.com
  [db-12]
 
 
  --
  PHP General Mailing List (http://www.php.net/)
  To unsubscribe, visit: http://www.php.net/unsub.php
 
 
 
 
  --
  github.com/KingCrunch


 --
 Thanks,
 Dave - DealTek
 deal...@gmail.com
 [db-12]




-- 
github.com/KingCrunch