繁体   English   中英

如何将Laravel与MySQL连接

[英]How to connect laravel with mySQL

我已经阅读了一些教程和视频。 我刚刚下载并安装了laravel。 试图创建一个简单的注册表格。

welcome.blade.php

<form action="{{URL::to('/store')}}" method="post">
       {{csrf_field()}}
       <input type="text" name="clientFirstname" >
       <input type="text" name="clientSurname" >
       <input type="text" name="clientEmail">
       <input type="hidden" name="token" value="">
       <button type="submit" name="button">add</button>
</form>

web.php

Route::view('/', 'welcome');
Route::post('/store', "Controller@store");

Controller.php

class Controller extends BaseController {

    public function store(Request $request) {
        //print_r ($request->input());
        //print_r ($request->input('clientFirstname'));
        $result=DB::insert("INSERT INTO test('firstname', 'surname', 'email') VALUES(?, ?, ?)", $request->input('clientFirstname'), $request->input('clientSurname'), $request->input('clientEmail'));
        echo $result;
    }
}

.env

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=testdb
DB_USERNAME=root
DB_PASSWORD=

database.php

        'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'testdb'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
        ],

我已经通过phpmyadmin创建了一个名为testdb的数据库。 让我通知您,我可以打印表格字段,但是当我将上述插入代码插入数据库时​​,出现以下错误。

Symfony \\组件\\调试\\异常\\ FatalThrowableError(E_RECOVERABLE_ERROR)类型错误:传递给Illuminate \\ Database \\ Connection :: prepareBindings()的参数1必须为数组类型,给定字符串,在C:\\ Users \\ regor \\ ExampleProject \\中调用665行上的vendor \\ laravel \\ framework \\ src \\ Illuminate \\ Database \\ Connection.php

我将不胜感激任何帮助。 :)

DB::insert()方法接受一个数组作为第二个参数。

您应该这样使用它:

DB::insert("INSERT INTO test(`firstname`, `surname`, `email`) VALUES(?, ?, ?)", [
    $request->input('clientFirstname'),
    $request->input('clientSurname'),
    $request->input('clientEmail')
]);

另外,对列标识符使用反斜线代替单引号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM