質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

6366閲覧

【Laravel / クエリビルダ】DB::rawの使い方が正しくない

nanami0221

総合スコア18

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/02/02 13:40

初学者です。
お力添えいただけると幸いです。

やりたいこと

特定のテーブルから2つのカラム情報を配列で取得して、さらに追加でカラム(item)を作成し、文字列(出金)を出力したいです。

設計

DB

1+------------+-----------------+------+-----+---------+----------------+ 2| Field | Type | Null | Key | Default | Extra | 3+------------+-----------------+------+-----+---------+----------------+ 4| id | bigint unsigned | NO | PRI | NULL | auto_increment | 5| user_id | int unsigned | NO | | NULL | | 6| bank_type | int unsigned | NO | | NULL | | 7| bank_id | int unsigned | NO | | NULL | | 8| amount | varchar(100) | NO | | NULL | | 9| verified | date | YES | | NULL | | 10| created_at | timestamp | YES | | NULL | | 11| updated_at | timestamp | YES | | NULL | | 12| deleted_at | timestamp | YES | | NULL | | 13+------------+-----------------+------+-----+---------+----------------+

該当コード

PHP

1$details = DB::table('withdrawals') 2 ->select([ 3 'withdrawals.amount AS amount', 4 'withdrawals.created_at AS created_at', 5 DB::raw("substr('出金') AS item"), 6 ]) 7 ->where('withdrawals.user_id', '=', 1) 8 ->orderBy('created_at', 'desc') 9 ->get(); 10dd($details);

エラーメッセージ

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AS item from `withdrawals` where `withdrawals`.`user_id` = ? order by `created' at line 1 (SQL: select `withdrawals`.`amount` as `amount`, `withdrawals`.`created_at` as `created_at`, substr('出金') AS item from `withdrawals` where `withdrawals`.`user_id` = 1 order by `created_at` desc)

DB::rawをコメントアウトすると、以下のように取得できるので、エラーの原因はDB::rawということがわかっているのですが、原因がわからず、、、

Illuminate\Support\Collection {#1548 ▼ #items: array:1 [▼ 0 => {#1547 ▼ +"amount": "30000" +"created_at": "2021-02-02 19:30:28" } ] }

お力添えいただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

申し訳ございません、以下で大丈夫でした、、、

$details = DB::table('withdrawals') ->select([ 'withdrawals.amount AS amount', 'withdrawals.created_at AS created_at', DB::raw("'商品' AS item"), ]) ->where('withdrawals.user_id', '=', 1) ->orderBy('created_at', 'desc') ->get(); dd($details);

投稿2021/02/02 13:45

nanami0221

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問