login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Database tools > INSERT query builder dmv value array

INSERT query builder dmv value array

Auteur: marten - 19 september 2007 - 08:47 - Gekeurd door: Stijn - Hits: 4847 - Aantal punten: 1.50 (2 stemmen)




Een handige functie die ik nu een tijdje gebruik. De functie wil graag van je weten welke tabel je wilt vullen en een array met de waardes.
Een array dient als volgt opgebouwd te worden:

$array['veldnaam_uit_database'] = 'value dat in de database moet';

De velden die niet goed zijn worden netjes overgeslagen. Dus alleen de velden die in de database tabel staan worden verwerkt.

$pdo staat een PDO connectie.


Code:
  1. /**
  2. * Sets the database link identifier
  3. *
  4. * @subpackage Author
  5. * @author Marten van Urk .: ComSi www.comsi.nl :.
  6. * @param String $host
  7. * @param String $user
  8. * @param String $pass
  9. * @param String $database
  10. */
  11. public function setDb($host, $user, $pass, $database) {
  12. try {
  13. $pdo = new PDO('mysql:host=' .$host. ';dbname=' .$database. '', '' .$user. '', '' .$pass. '' , array(PDO::ATTR_PERSISTENT => true));
  14. $this->db = $pdo;
  15. } catch (Exception $e) {
  16. return false;
  17. }
  18. }
  19.  
  20. /**
  21. * Insert query builder for news system
  22. *
  23. * @author Marten van Urk .: ComSi www.comsi.nl :.
  24. * @param Array $values
  25. * @param String $table
  26. * @return Boolean
  27. */
  28. public function insertFunction($values, $table) {
  29. $sQuery_fields = "SHOW COLUMNS FROM " . $table;
  30. try {
  31. $rResult_fields = $this->db->query($sQuery_fields);
  32.  
  33. $sFields = '';
  34. $aFields = array();
  35.  
  36. $sValues = '';
  37. $looped = 1;
  38. $count = count($values);
  39.  
  40. foreach ($rResult_fields as $r) {
  41. $aFields[$r[0]] = '';
  42. }
  43.  
  44. foreach ($values as $key => $value) {
  45. if (array_key_exists($key, $aFields)) {
  46. if ($looped < $count) {
  47. $sFields .= $key . ', ';
  48. $sValues .= "'" .$value. "',";
  49. } elseif ($looped == $count) {
  50. $sFields .= $key;
  51. $sValues .= "'" .$value. "'";
  52. }
  53. }
  54. $looped++;
  55. }
  56.  
  57. $sQuery = "INSERT INTO " .$table. " (" .$sFields. ") VALUES (" .$sValues. ")";
  58. $rResult = $this->db->query($sQuery);
  59. return true;
  60. } catch (Exception $e) {
  61. return false;
  62. }
  63. }
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (7)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.04s