За последние 24 часа нас посетили 21495 программистов и 1695 роботов. Сейчас ищет 1851 программист ...

Записывает не во все базы

Тема в разделе "MySQL", создана пользователем cyberfuntik, 31 июл 2016.

  1. cyberfuntik

    cyberfuntik Новичок

    С нами с:
    30 июн 2016
    Сообщения:
    8
    Симпатии:
    0
    Имеем скрипт
    Код (Text):
    1. <?php
    2. $host = "localhost";
    3. $user = "root";
    4. $password = "";
    5. $database = "avito";
    6. $connect = mysql_connect($host, $user, $password);
    7. $select = mysql_select_db($database);
    8. $table = $_POST['city'] . '_' . $_POST['gender'];
    9. $fulltable = 'all' . '_' . $_POST['gender'];
    10. $phone = $_POST['phone'];
    11. $doContact = $_POST['phone'];
    12. $contact = array();
    13. for ($i = 0; $i < strlen($doContact); $i++) {
    14.     if (preg_match('/[0-9]/i', $doContact[$i])) {
    15.         $contact[] = $doContact[$i];
    16.     }
    17. }
    18. $contact = implode($contact);
    19. if (!empty($contact) && !empty($phone)) {
    20.     $operation = mysql_query("INSERT INTO $table VALUES ('$contact', '$phone')") or die("Error, insert query failed into table");
    21.     echo 'Add to table ' . '\'' . $table . '\'' . ' successfully.<br>';
    22.     $operation = mysql_query("INSERT INTO $fulltable VALUES ('$contact', '$phone')") or die("Error, insert query failed into table");
    23.     echo 'Add to table ' . '\'' . $fulltable . '\'' . ' successfully.<br>';
    24.     echo '<button onclick="goBack()">Go Back</button><script>function goBack() {window.history.back();}</script>';
    25. } else
    26.     echo 'OOPS! Произошла ошибка...';
    27. mysql_close($connect);
    28. ?>
    вроде бы все работает. но... если $fulltable = 'all', то срабатывает Error, insert query failed into table и кнопка назад не выводится. Таблицы абсолютно одинаковые.

    И если не секрет мирового масштаба, можно ли эту белиберду делать одним sql запросом в несколько баз?
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    надо так сделать и посмотреть какой запрос получился и уже его видя можно понять в чём ошибка, потом выполнить его в PHPMyAdmin например, чтобы проверить работает или нет.
    PHP:
    1. echo "INSERT INTO $table VALUES ('$contact', '$phone')") or die("Error, insert query failed into table";
    mysql_* удалили из PHP 7 уже, перешли на MySQLi и PDO.
    --- Добавлено ---
    Можно, написать функцию в mysql, ещё есть выполнение несколько запросов за раз, вот https://secure.php.net/manual/ru/mysqli.quickstart.multiple-statement.php
     
  3. cyberfuntik

    cyberfuntik Новичок

    С нами с:
    30 июн 2016
    Сообщения:
    8
    Симпатии:
    0
    На скрине что-то не так
    php 5.3 на денвере. пока не увидел смысла больше заморачиваться, работаю на винде
    это на php7 уже?
     

    Вложения:

  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @cyberfuntik просто перед or поставь ; и дальше удали всё с этой строчки.

    PHP 5.3 давно не поддерживается и denwer тоже, могут быть проблемы с переездом на хостинг, вот например open-server.ru может заменить denwer, там и PHP 7 есть даже.

    В PHP 5.3 думаю тоже есть, смотри mysqli, может там в php.ini включить нужно.