To create a PHP script that fetches JSON data from an API endpoint and saves it into a MySQL database, follow these steps:

1. Create a new PHP file (e.g., `fetch_and_save_data.php`).

2. Add the following code to connect to your MySQL database using PDO:

```php
<?php

$host = 'localhost';
$dbname = 'your_database_name';
$user = 'your_username';
$password = 'your_password';

try {
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
```

Replace `'your_database_name'`, `'your_username'`, and `'your_password'` with your actual database credentials.

3. Define the API endpoint URL:

```php
$api_url = 'https://api.example.com/data'; // Replace this with the actual API endpoint.
```

4. Fetch the JSON data from the API endpoint using `file_get_contents()` or cURL:

```php
$json_data = file_get_contents($api_url);

if ($json_data === false) {
    die('Error fetching data from API.');
}

$data_array = json_decode($json_data, true);

if ($data_array === null) {
    die('Error decoding JSON data.');
}
```

5. Prepare an SQL statement to insert the fetched data into the database. This example assumes you have a table named `my_table` with columns `column1`, `column2`, and `column3`. Modify the table name and column names according to your schema:

```php
$sql = "INSERT INTO my_table (column1, column2, column3) VALUES (:column1, :column2, :column3)";
$stmt = $conn->prepare($sql);
```

6. Loop through the fetched data and bind values to the prepared statement, then execute it:

```php
foreach ($data_array as $item) {
    // Assuming the JSON object has keys 'key1', 'key2', and 'key3' that correspond to your table columns.
    $stmt->bindValue(':column1', $item['key1']);
    $stmt->bindValue(':column2', $item['key2']);
    $stmt->bindValue(':column3', $item['key3']);

    try {
        $stmt->execute();
    } catch (PDOException $e) {
        echo "Error inserting data: " . $e->getMessage();
    }
}
```

7. Close the database connection:

```php
$conn = null;
```

The complete script should look like this:

```php
<?php

$host = 'localhost';
$dbname = 'your_database_name';
$user = 'your_username';
$password = 'your_password';

try {
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

$api_url = 'https://api.example.com/data'; // Replace this with the actual API endpoint.

$json_data = file_get_contents($api_url);

if ($json_data === false) {
    die('Error fetching data from API.');
}

$data_array = json_decode($json_data, true);

if ($data_array === null) {
    die('Error decoding JSON data.');
}

$sql = "INSERT INTO my_table (column1, column2, column3) VALUES (:column1, :column2, :column3)";
$stmt = $conn->prepare($sql);

foreach ($data_array as $item) {
    // Assuming the JSON object has keys 'key1', 'key2', and 'key3' that correspond to your table columns.
    $stmt->bindValue(':column1', $item['key1']);
    $stmt->bindValue(':column2', $item['key2']);
    $stmt->bindValue(':column3', $item['key3']);

    try {
        $stmt->execute();
    } catch (PDOException $e) {
        echo "Error inserting data: " . $e->getMessage();
    }
}

$conn = null;
```

Now, when you run this script, it will fetch JSON data from the specified API endpoint and insert it into your MySQL database using prepared statements.
API 엔드포인트에서 JSON 데이터를 가져와서 MySQL 데이터베이스에 저장하는 PHP 스크립트를 만들려면 다음 단계를 따르세요:

1. 새 PHP 파일(예: `fetch_and_save_data.php`)을 만듭니다.

2. 다음 코드를 추가하여 PDO를 사용하여 MySQL 데이터베이스에 연결합니다:

```php
<?php

host = 'localhost';
dbname = 'your_database_name';
user = 'your_username';
password = 'your_password';

try {
    conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
    conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "연결에 실패했습니다: " . $e->getMessage();
}
```

'your_database_name'`, `'your_username'`, `'your_password'`를 실제 데이터베이스 자격 증명으로 바꾸세요.

3. API 엔드포인트 URL을 정의합니다:

```php
API_URL = 'https://api.example.com/data'; // 실제 API 엔드포인트로 바꿉니다.
```

4. file_get_contents()` 또는 cURL을 사용하여 API 엔드포인트에서 JSON 데이터를 가져옵니다:

```php
json_data = file_get_contents($api_url);

if ($json_data === false) {
    die('API에서 데이터를 가져오는 동안 오류가 발생했습니다.');
}

data_array = json_decode($json_data, true);

if ($data_array === null) {
    die('JSON 데이터를 디코딩하는 동안 오류가 발생했습니다.');
}
```

5. 가져온 데이터를 데이터베이스에 삽입하는 SQL 문을 준비합니다. 이 예제에서는 `column1`, `column2`, `column3` 열이 있는 `my_table`이라는 이름의 테이블이 있다고 가정합니다. 스키마에 따라 테이블 이름과 열 이름을 수정합니다:

```php
sql = "INSERT INTO my_table (column1, column2, column3) VALUES (:column1, :column2, :column3)";
stmt = $conn->prepare($sql);
```

6. 가져온 데이터를 반복하고 준비된 문에 값을 바인딩한 다음 실행합니다:

```php
foreach ($data_array as $item) {
    // JSON 객체에 테이블 열에 해당하는 키 'key1', 'key2', 'key3'가 있다고 가정합니다.
    stmt->bindValue(':column1', $item['key1']);
    stmt->bindValue(':column2', $item['key2']);
    stmt->bindValue(':column3', $item['key3']);

    try {
        stmt->execute();
    } catch (PDOException $e) {
        echo "데이터를 삽입하는 동안 오류가 발생했습니다: " . $e->getMessage();
    }
}
```

7. 데이터베이스 연결을 닫습니다:

```php
conn = null;
```

전체 스크립트는 다음과 같아야 합니다:

```php
<?php

host = 'localhost';
dbname = 'your_database_name';
user = 'your_username';
password = 'your_password';

try {
    conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
    conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "연결에 실패했습니다: " . $e->getMessage();
}

api_url = 'https://api.example.com/data'; // 실제 API 엔드포인트로 대체합니다.

json_data = file_get_contents($api_url);

if ($json_data === false) {{0
    die('API에서 데이터를 가져오는 동안 오류가 발생했습니다.');
}

data_array = json_decode($json_data, true);

if ($data_array === null) {
    die('JSON 데이터를 디코딩하는 동안 오류가 발생했습니다.');
}

sql = "INSERT INTO my_table (column1, column2, column3) VALUES (:column1, :column2, :column3)";
stmt = $conn->prepare($sql);

foreach ($data_array as $item) {
    // JSON 객체에 테이블 열에 해당하는 키 'key1', 'key2', 'key3'가 있다고 가정합니다.
    stmt->bindValue(':column1', $item['key1']);
    stmt->bindValue(':column2', $item['key2']);
    stmt->bindValue(':column3', $item['key3']);

    try {
        stmt->execute();
    } catch (PDOException $e) {
        echo "데이터를 삽입하는 동안 오류가 발생했습니다: " . $e->getMessage();
    }
}

conn = null;
```

이제 이 스크립트를 실행하면 지정된 API 엔드포인트에서 JSON 데이터를 가져와서 준비된 문을 사용하여 MySQL 데이터베이스에 삽입합니다.