Advertisement
Guest User

Untitled

a guest
Jun 15th, 2015
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. <?php
  2. //Скрипт вставки сообщений в БД
  3. //Сделано специально для ТЗ
  4. //Автор скрипта: Гор Мхитарян
  5.  
  6. //Скрипт не самый производительный, можно сделать и лучше
  7.  
  8. //Сообщения
  9. $mails = array(
  10. array(
  11. 'firm_id' => 1,
  12. 'subject' => 'Hello',
  13. 'body' => 'How are you?',
  14. 'from' => 'charlie@gmail.com',
  15. 'to' => 'bobby@gmail.com'
  16. ),
  17. array(
  18. 'firm_id' => 2,
  19. 'subject' => 'Hi',
  20. 'body' => 'Im ok',
  21. 'from' => 'bobby@gmail.com',
  22. 'to' => 'charlie@gmail.com'
  23. )
  24. )
  25. function connectToDb($db)
  26. {
  27. //Используем MySQL, так же можно использовать любую другую БД
  28. //Подключение к бд осуществляется по условию описанному в
  29. //Методе getBase
  30.  
  31. return new PDO('mysql:host=localhost;dbname='.$db,'root',null);
  32. }
  33.  
  34. function getBase($N){
  35. //Описать условие выбора базы данных
  36. //В ТЗ не сказано про условие, по этому
  37. //Я придумал свое.
  38.  
  39. //Для сообщений с нечетным ID мы используем БД 'DbForOdds'
  40. //Для сообщений с четным ID будем использовать БД 'DbForEvens'
  41. if($N % 2){
  42. return 'DbForOdds';
  43. } else {
  44. return 'DbForEvens';
  45. }
  46. }
  47.  
  48. function insertMessages(array $arr)
  49. {
  50. //Вставляем сообщения в бд в цикле
  51. for($i=0;$i < count($arr[0]);$i++)
  52. {
  53. //Получаем название БД
  54. $db = getBase($arr[0][$i]['firm_id']);
  55. //Подключаемся к БД
  56. $connection = connectToDb($db);
  57.  
  58. //Запрос в БД
  59. $query = $connection->prepare('INSERT INTO `messages` (`subject`,`body`,`from`,`to`) VALUES (:sub,:body,:fr,:to)');
  60. if(!$query->execute(array(
  61. ':sub' => $arr[0][$i]['subject'],
  62. ':body' => $arr[0][$i]['body'],
  63. ':fr' => $arr[0][$i]['from'],
  64. ':to' => $arr[0][$i]['to']
  65. ))){
  66.  
  67. //Если хотя бы один запрос не завершится успешно, то функция insertMessages вернет false
  68. $state = false;
  69. } else {
  70. //При успешном выполнении всех запросов, $state = true; тоесть функция вернет true
  71. $state = true;
  72. }
  73. }
  74. //Возвращаем значение состояния выполнения запросов
  75. return $state;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement