запись в бд

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
vladukiti4
Сообщения: 32
Зарегистрирован: 2018.07.24, 15:05

запись в бд

Сообщение vladukiti4 »

нужно записать через yii2 а не через mysql
записать через mysql :

Код: Выделить всё

 
$result = mysql_query("INSERT INTO ishodpisma (`tema`,`text`,`num`,`date`) VALUES ('$token6','$token4','$num','$dates')");
записать через yii2:

Код: Выделить всё

 
$db->createCommand("INSERT INTO ishodpisma (`tema`,`text`,`num`,`date`) VALUES ('$token6','$token4','$num','$dates')")->execute();
при записи через mysql ошибки нет а через yii вылазит ошибка :

Код: Выделить всё

Call to a member function createCommand() on null
Вот весь код:

Код: Выделить всё

<?php
$this->title = 'Письмо';
$this->params['breadcrumbs'][] = $this->title;
$dannie = $_POST;
if(isset($dannie['process']) && $dannie['process'] === 'go') {
    //-------------------------------------------------------------------------------------------------------
    $zip = new ZipArchive();

    $outputFilename = 'tst.docx';
    print"<hr> Пришло: ";

    echo $dannie;
    print "<br>";
    print_r($dannie);
    print "<br>";
    echo $num = $dannie['num'];
    $sss1 = $dannie['sss1'];
    $token3 = $dannie['token3'];
    $token4 = $dannie['token4'];
    $token6 = $dannie['token6'];

    print"<hr> ";

    print "<br>";
    echo $num;

    print "<br>";
    echo $sss1;
    print "<br>";
    print "<br>";
    $dates = date("Y-m-d");
    $newfile = "msg/$num-$dates.docx";
    $file = 'blank_pismo.docx';
    if (!copy($file, $newfile)) {
        echo "не удалось скопировать $file...\n";
    }
    print"<hr> ";

    $inputFilename = $newfile;
    
    //тут начинается подключение/...../запись в бд
     mysql_connect('localhost','root','');
    mysql_select_db(tst);
    $one=mysql_real_escape_string($_POST['token6']);
    $two=mysql_real_escape_string($_POST['token4']);
    $three=mysql_real_escape_string($_POST['num']);
    $dates = date("Y-m-d");

  $db->createCommand("INSERT INTO ishodpisma (`tema`,`text`,`num`,`date`) VALUES ('$token6','$token4','$num','$dates')")->execute();


    if($result == 'true')
    {echo "Ваши данные успешно добавлены";}
    else{echo "Ваши данные не добавлены";}

    if ($zip->open($inputFilename, ZipArchive::CREATE)!==TRUE) {
        echo "Cannot open $filename :( "; die;
    }

    // Fetch the document.xml file from the word subdirectory in the archive.
    $xml = $zip->getFromName('word/document.xml');
    // Replace the tokens.
    $xml = str_replace('{NUM}',$num, $xml);
    $xml = str_replace('{KOMY}',$sss1, $xml);
    $xml = str_replace('{OBR}',$token3, $xml);
    $xml = str_replace('{TEXT}',$token4, $xml);
    $xml = str_replace('{TEMA}',$token6, $xml);
    $xml = str_replace('{DATA}',$dates, $xml);

    // Write back to the document and close the object
    if ($zip->addFromString('word/document.xml', $xml)) { echo 'File written!'; }
    else { echo 'File not written.  Go back and add write permissions to this folder!l'; }

    $zip->close();

//-------------------------------------------------------------------------------------------------------
}
else{
    mysql_connect('localhost','root','');
    mysql_select_db(tst);
    $resultat = mysql_query("SELECT * FROM ishodpisma ORDER BY num DESC LIMIT 1");
    $array = mysql_fetch_array($resultat);
    //echo "Номер: ".$array['num'];

    $row_index = $array['num'] ;
    {
        $row_index++;
    }
$qqq1 = $row_index++;
    $dates = date("d-m-Y");
    ?>

    <div class="site-contact">
        <form method="POST" action="">
             <?php echo"<p>Номер <input name=\"num\" type=\"text\"  value=".$qqq1." readonly></p>"; ?>
            <p>Кому <input name="sss1" type="text" value="Пипкину"></p>
            <p>Обращение<input name="token3" type="text"   value="Глубокоуважаемый"></p>
            <p>Сообщение<input name="token4" class="token5" type="text" size="100"  value="текст большой текст" ></p>
            <p>Тема Сообщеиия<input name="token6" type="text"  value="Тема"></p>
            <?php echo"<p>Дата<input name='dates' type='text'  value=".$dates." readonly></p>"; ?>
            <p><input name="process" type="hidden"  value="go"></p>
            <input type="submit" value="Сохранить">
        </form>
    </div>
    <?

}
?>

someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: запись в бд

Сообщение someweb »

А откуда вы взяли $db?
Yii::$app->db->createCommand(...
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: запись в бд

Сообщение urichalex »

Контроллер вам для чего? Нафига такая лапша в представлении?
Art4es
Сообщения: 3
Зарегистрирован: 2018.08.09, 06:36

Re: запись в бд

Сообщение Art4es »

someweb писал(а): 2018.08.08, 16:04 А откуда вы взяли $db?
Yii::$app->db->createCommand(...
Все правильно написал, единственное осталось настроить компонент db в конфигурации проекта.

Код: Выделить всё

'db' => [
    'class' => 'yii\db\Connection',
    'dsn' => '',
    'username' => '',
    'password' => '',
    'charset' => '',
];
Ответить