Ale*_*nik 12 php mysql laravel laravel-5
我在本地xampp上有这个表,表名是tags,这在我的本地系统上完全正常,但是当我将这个表上传到我的服务器时,我收到以下错误:
我在桌子peckinga_blog下面的表格如下:
您可以看到tags其中一个,同样对于tags表格,我在laravel应用程序中进行了以下迁移:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTagsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('Tags', function (Blueprint $table) {
$table->increments('id');
$table->mediumText('tag');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('Tags');
}
}
Run Code Online (Sandbox Code Playgroud)
既然我的数据库清晰可用,为什么我会得到这个错误?我该怎么做才能使我的服务器找到数据库tags而不是Tags?
Dee*_*kar 11
数据库和表名在Windows中不区分大小写,在大多数Unix或Linux中区分大小写.MySQL中的表名是文件系统条目,因此如果是基础文件系统,它们不区分大小写.
虽然在应用迁移后,它应该工作但是如果它不工作并且你想要两个语句,即表中的小写和大写名称成功,你需要把以下行
lower_case_table_names = 1
在/etc/my.cnf或您保存MySQL配置的任何地方.
Doctrine生成大写/ CamelCase表名,MySQL将它们存储为小写!
要么
在从本地导出数据库之前,您可以执行以下步骤:
打开你的MySQL配置文件:[drive]\xampp\mysql\bin\my.ini
查找:#MySQL服务器[mysqld]
在它下面添加:lower_case_table_names = 2
保存文件并重启MySQL服务
务必将系统变量添加到配置文件的[mysqld]部分.
有关更多信息,请查看MySQL参考链接.
我的代码中有以下行:
$tags = DB::table('Tags')->get();
Run Code Online (Sandbox Code Playgroud)
在我的窗户上完美地工作XAMPP,但需要将其更改为:
$tags = DB::table('tags')->get();
Run Code Online (Sandbox Code Playgroud)
在我的服务器上工作.
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |