> For the complete documentation index, see [llms.txt](https://docs.cs-cart.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cs-cart.jp/core/database/placeholders.md).

# データベース・プレイスホルダー

## ?u

データを更新するための構造持つ配列を格納します:

```php
<?php
$data = array (
    'payment_id' => 5
    );
$order_id = 3;
 
db_query('UPDATE ?:orders SET ?u WHERE order_id = ?i', $data, $order_id);
```

上記PHPコードは以下のSQLとなります。

```mysql
UPDATE cscart_orders SET payment_id = '5' WHERE order_id = 3;
```

## ?e

データを挿入するための構造持つ配列を格納します:

```php
<?php
$data = array (
    'payment_id' => 5,
    'order_id' => 3
);
 
db_query('INSERT INTO ?:orders ?e', $data);
```

上記PHPコードは以下のSQLとなります。

```mysql
INSERT INTO cscart_orders (payment_id, order_id) VALUES ('5', '3');
```

## ?i

文字列や数値を受け取り、整数に変換します

```php
<?php
$order_id = 4;
db_query('SELECT * FROM ?:orders WHERE order_id = ?i', $order_id);
```

上記PHPコードは以下のSQLとなります。

```mysql
SELECT * FROM cscart_orders WHERE order_id = 4;
```

## ?s

文字列や数値を（スラッシュを追加して）文字列に変換します

```php
<?php
$order_id = 'adasd';
db_query('SELECT * FROM ?:orders WHERE order_id = ?s', $order_id);
```

上記PHPコードは以下のSQLとなります。

```mysql
SELECT * FROM cscart_orders WHERE order_id = 'foo';
```

## ?l

受け取ったデータをLIKEオペレーターに置換するために文字列に変換します(ダブルバックスラッシュに変換されスラッシュが追加されます)

```php
<?php
$piece = '%black\white%';
db_query('SELECT * FROM ?:product_descriptions WHERE product LIKE ?l', $piece);
```

上記PHPコードは以下のSQLとなります。

```mysql
SELECT * FROM cscart_product_descriptions WHERE product LIKE '%black\\\\white%';
```

## ?d

データをデシマル（分数）に変換する

```php
<?php
$order_id = '123.345345';
db_query('SELECT * FROM ?:orders WHERE order_id = ?d', $order_id);
```

上記PHPコードは以下のSQLとなります。

```mysql
SELECT * FROM cscart_orders WHERE order_id = '123.35';
```

## ?a

prepares data to be used in the structure IN () as a set of strings, receives a string, number, array:\
文字列や数値、配列をIN ()で使えるデータに変換します

```php
<?php
$order_id = '123';
db_query('SELECT * FROM ?:orders WHERE order_id IN (?a)', $order_id);
```

上記PHPコードは以下のSQLとなります。

```mysql
SELECT * FROM cscart_orders WHERE order_id IN ('123');
```

## ?n

文字列や数値、配列を`IN()`で使えるデータに変換します

```php
<?php
$order_id = '123.45';
db_query('SELECT * FROM ?:orders WHERE order_id IN (?n)', $order_id);
```

## ?p

準備された値の挿入:

```php
<?php
$order_id = 'order_id = 4';
db_query('SELECT * FROM ?:orders WHERE ?p', $order_id);
```

上記PHPコードは以下のSQLとなります。

```mysql
SELECT * FROM cscart_orders WHERE order_id = 4;
```

## ?w

WHERE句で使えるデータを格納します

```php
<?php
$data = array (
    'payment_id' => 5,
    'order_id' => 3
);
 
db_query('SELECT * FROM ?:orders WHERE ?w', $data);
```

上記PHPコードは以下のSQLとなります。

```mysql
SELECT * cscart_orders WHERE payment_id = '5' AND order_id = '3';
```

**Operators**\
`?w` プレースホルダーは次のオペレーターをサポートしています: `=`, `!=`, `>`, `<`, `<=`, `>=`, `<>`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `NULL`

配列の例

```php
<?php
$data = array (
    field => value,
    array(field, operator, value)
);
```

* `field` テーブルのフィールド名
* `value` 値の条件
* `operator` 条件のオペレーター

## ?f

変数の値が有効なフィールド名かチェックします

```php
<?php
$data = 'payment@id';
 
db_query('SELECT * FROM ?:orders WHERE ?f = 5', $data);
```

上記PHPコードは以下のSQLとなります。

```mysql
SELECT * FROM cscart_orders WHERE  = 5;
```

## ?m

マルチインサートに対応する配列を格納します。

```php
<?php
$data = array(
    array(
        'payment_id' => 5,
        'order_id' => 3
    ),
    array(
        'payment_id' => 5,
        'order_id' => 4
    ),
);
 
db_query('INSERT INTO ?:orders ?m', $data);
```

上記PHPコードは以下のSQLとなります。

```mysql
INSERT INTO cscart_orders (payment_id, order_id) VALUES ('5', '3'),('5', '4');
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.cs-cart.jp/core/database/placeholders.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
