Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 错误:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;_Php_Mysql_Database_Laravel_Mariadb - Fatal编程技术网

Php 错误:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;

Php 错误:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;,php,mysql,database,laravel,mariadb,Php,Mysql,Database,Laravel,Mariadb,我想使用laravel迁移我的数据库。 我尝试以下命令:php-artisan-migrate:fresh--seed并接受以下错误: Migrating: 2019_10_28_130723_alter_users_table Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;

我想使用laravel迁移我的数据库。
我尝试以下命令:
php-artisan-migrate:fresh--seed
并接受以下错误:

Migrating: 2019_10_28_130723_alter_users_table

   Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB ser
ver version for the right syntax to use near 'CHARACTER SET utf8mb4 DEFAULT 0 NOT NULL COLLATE `utf8mb4_unicode_ci`' at line 1 (SQL: ALTER TABLE users CHANGE deductible_amount deductible_a
mount BIGINT UNSIGNED CHARACTER SET utf8mb4 DEFAULT 0 NOT NULL COLLATE `utf8mb4_unicode_ci`)

  at C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|

  Exception trace:

  1   Doctrine\DBAL\Driver\PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB s
erver version for the right syntax to use near 'CHARACTER SET utf8mb4 DEFAULT 0 NOT NULL COLLATE `utf8mb4_unicode_ci`' at line 1")
      C:\xampp\htdocs\project\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:63

  2   PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the
 right syntax to use near 'CHARACTER SET utf8mb4 DEFAULT 0 NOT NULL COLLATE `utf8mb4_unicode_ci`' at line 1")
      C:\xampp\htdocs\project\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:61

  Please use the argument -v to see more details.

以下是我的
2019\u 10\u 28\u 130723\u alter\u users\u表
迁移文件的内容:


此行会导致迁移出错

$table->unsignedBigInteger('deductible_amount')->change();
试着把它改成

$table->string('deductible_amount')->unsigned()->change();
针对您的情况更新答案

        Schema::table('users', function (Blueprint $table) {
            $table->unsignedBigInteger('deductible_amount_new');
        });

        DB::statement('UPDATE `users` SET deductible_amount_new=deductible_amount ');

        Schema::table('users', function (Blueprint $table) {
            $table->renameColumn('active', 'is_active');
            $table->dropColumn([
                                    'settings',
                                    'google_id',
                                    'github_id',
                                    'telegram_notif',
                                    'income',
                                    'email_notif',
                                    'sms_notif',
                                    'temppass',
                                    'storm_id',
                               ]);
            $table->dropColumn('deductible_amount');
            $table->softDeletes();
        });

        Schema::table('users', function (Blueprint $table) {
            $table->renameColumn('deductible_amount_new', 'deductible_amount');
        });

我希望它能有所帮助。

该行位于ˋdown`方法上,将在rollback命令中触发。我知道问题出在“免赔额”字段上,但在
up
方法上,因为我正在尝试
php artisan migrate
commanr。你在说什么?该行在代码中的
up
方法上,尝试将类型更改为
string
,问题将得到解决。稍后谢谢。对不起,这是从另一个错误答案复制的评论,该用户已将其删除。但我需要这个字段是整数,因为它存储的是整数,而不是字符串。这个答案甚至没有解释。