[sql] Вопросы по БД

Discussion in 'PHP' started by FraiDex, 25 Feb 2008.

Thread Status:
Not open for further replies.
  1. tester_new

    tester_new Elder - Старейшина

    Joined:
    12 Feb 2012
    Messages:
    300
    Likes Received:
    45
    Reputations:
    24
    Файл уже существует до первого запуска программы(и размер свой не меняет), пробовал открыть через sqlite/mysql/access, помоему этот файл в бинарном виде... очень буду благодарен за помощь, может у кого то хоть что товыйдет :)
     
    #1901 tester_new, 27 Mar 2013
    Last edited: 27 Mar 2013
  2. DwH

    DwH New Member

    Joined:
    21 Feb 2012
    Messages:
    60
    Likes Received:
    2
    Reputations:
    0
    Попробуй через VB может и пройдёт но не уверен.
     
  3. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    подскажите пожалуйста по поводу транзакций

    Скрипт начинает с запроса START TRANSACTION;

    далее производит вычисления, заносит их в бд, если все нормально то сохраняем транзакцию COMMIT
    либо если что-то не так то выполняет ROLLBACK для того чтобы данные не сохранились


    теперь вопрос, что будет если в скрипте появится ошибка и он остановится в середине, т.е. COMMIT либо ROLLBACK не выполнится

    что будет с данными которые начали заносится в бд после старта транзакции?
     
  4. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Kruzak Будут отменены, как если бы сделан rollback
     
    _________________________
  5. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    Очень неприятная проблема обнаружилась

    Есть таблица, с AUTO_INCREMENT, записей теоретически будет очень много - поле ID имеет тип bigint
    в данный момент значение AUTO_INCREMENT для тестирования ровно = 800000400010
    оказывается вроде как при id типа bigint начинаются проблемы с функцией $id = mysql_insert_id();
    т.е. фнукция выдает совсем левый ID, не тот что на самом деле в бд

    Как решить проблему?

    естественно пока что можно не использовать bigint, но он нужен будет теоретически при полной нагрузке. Хочу заранее решить эту проблему((

    insert id мне нужно получить именно после внесения записи, а не до. Т.к. думаю может возникнуть путаница, у меня в коде много транзакций, и вообще скрипт полностью загружен, каждую секунду происходят операции с бд
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Kruzak http://www.php.net/manual/en/function.mysql-insert-id.php
     
    _________________________
  7. M@rkus

    M@rkus Banned

    Joined:
    25 Jul 2010
    Messages:
    43
    Likes Received:
    5
    Reputations:
    0
    вопрос как то странный)
     
  8. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    Всем доброго времени суток!
    есть таблица tablename в mysql
    в phpmyadmin я делаю sql запрос что бы добавить в неё данные:
    PHP:
    INSERT INTO `tablename` (
    `
    code` ,
    `
    name`
    )
    VALUES (
    '1234''имя');
    если возможно то как то бы проверять на одинаковые записи если есть одинаковое значениев столбце code, то не добавлять и показать ошибку
    а возможно ли проверить name столбец на предмет одинаковой ФИО ?
    помогите пожалуйста с реализацией кода

    вот мой код, но без проверки:

    PHP:
    include("connect.php");
    if (
    $_POST['code']!="" and $_POST['name']!="") {
     
    $query "INSERT INTO `tablename` (`code`, `name`) VALUES ('".$_POST['code']."','".$_POST['name']."')";
    $result mysql_query($query) or die ("<p>ошибка запроса</p>");
    }
     
    #1908 GAiN, 11 Apr 2013
    Last edited: 11 Apr 2013
  9. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    PHP:
    <?
    if( isset(
    $_POST['code']) and isset($_POST['name']) )  {

    $code $_POST['code'];
    $name $_POST['name'];
    $select mysql_fetch_assoc(mysql_query("select `name` from `tablename` where `code` = '$code'"));

    if( 
    $select == "" ) {
    mysql_query("insert into `tablename`(`code`,`name`) values ('$code','$name'));
    echo "
    Данне успешно добавлены";
                        }else{
    echo "
    Такая запись уже существует";                
                              }

                                                            }
    ?>


    <form action = ""  method = "
    post">
    code:
    <input type = "
    text" name = "code"><br>
    name:
    <input type = "
    text" name = "name">
    <input type = "
    submit" value = "send">
    </form>
     
  10. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    PHP:
    <? 
    if( isset(
    $_POST['code']) and isset($_POST['name']) )  { 

    $code $_POST['code']; 
    $name $_POST['name']; 
    $select mysql_fetch_assoc(mysql_query("select `name` from `tablename` where `code` = '$code'")); 

    if( 
    $select == "" ) { 
    mysql_query("insert into `tablename`(`code`,`name`) values ('$code','$name')); 
    echo "
    Данне успешно добавлены"; 
                        }else{ 
    echo "
    Такая запись уже существует";                 
                              } 

                                                            } 
    ?> 
    тут ошибка 500, какого какого то знака нехватает, в notepad серый код без поцветки начиная с if( $select == "" ) {
     
  11. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    ковычку добавь
    mysql_query("insert into `tablename`(`code`,`name`) values ('$code','$name')");
     
    1 person likes this.
  12. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    qaz, спасибо, проверка отлично работает ! +
     
  13. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    я немного поспешил и тупанул, исправь
    if( $select == "" )
    на
    if( $select['name'] == "" )
     
  14. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    qaz, а можно ли как то к твоему коду прикрутить проверку?, если не заполнить форму и отправить то пустоту пишет в базу
     
  15. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75

    PHP:
    <?  
    if( isset(
    $_POST['code']) and isset($_POST['name']) )  {  

    $code $_POST['code'];  
    $name $_POST['name'];  

    if( 
    $code == "" or $name == "" ) {

    echo 
    "заполните данные";
    exit();
                                                        }

    $select mysql_fetch_assoc(mysql_query("select (count(`name`))c  from `tablename` where `code` = '$code'"));  

    if( 
    $select['c'] == ) {  
    mysql_query("insert into `tablename`(`code`,`name`) values ('$code','$name'));  
    echo "
    Данне успешно добавлены";  
                        }else{  
    echo "
    Такая запись уже существует";                  
                              }  

                                                            }  
    ?>
     
    #1915 qaz, 11 Apr 2013
    Last edited: 11 Apr 2013
    1 person likes this.
  16. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    select (select table_name from information_schema.tables where table_schema != 0x696e666f726d6174696f6e5f736368656d61 limit 3,1)x, `id` from `x`

    собственно из подзапроса получаю имя таблици и хочу вывести информацию из одной из её колонки, но получаю ошибку Unknown table 'x' in information_schema почему?
     
  17. DwH

    DwH New Member

    Joined:
    21 Feb 2012
    Messages:
    60
    Likes Received:
    2
    Reputations:
    0
    Проверь так:

    Code:
    SELECT `COLUMN_NAME` FROM `information_schema`.`COLUMNS` WHERE `TABLE_NAME` = 'table_name'
     
  18. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    помогите написать триггер

    есть таблица юзеров id|email|pass

    после регистрации пользователя нужно добавить несколько записей в другую таблицу

     
  19. DwH

    DwH New Member

    Joined:
    21 Feb 2012
    Messages:
    60
    Likes Received:
    2
    Reputations:
    0
    А зачем именно триггер ? можно и без него, реализация триггера в базе данных носит чисто административный характер.
     
  20. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    как без него?

    я сейчас просто в скрипте регистрации делаю mysql запрос

    вот думал триггеры как раз для этих целей наверное нужны
     
Thread Status:
Not open for further replies.