

> 7/24 14:55 追記(1)  
>  $pdo->prepareではなく$dbh->prepareにし、INSERTの後にINTOを記入したら、下記のように表示されました。
>
> 接続しました。ERROR:SQLSTATE[3D000]: Invalid catalog name: 1046 No database  
>  selected

php.pdoというファイルを作り、localhost/php.pdoでアクセスすると「接続しました」とだけ表示されます。phpmyadminにデータを挿入したいのですが、現段階で何が足りていないのでしょうか。personlというデータベースのfriendというテーブルにデータを挿入したいです。ご教示のほど宜しくお願いします。

[code]

    <?php
    define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PASSWORD', 'root');
    define('DB_NAME', 'personal');
         
    // エラー表示設定:通知系以外全て表示    
    error_reporting(E_ALL & ~E_NOTICE);
         
    try {
             
    $dbh = new PDO('mysql:'.DB_NAME.';'.DB_HOST, DB_USER, DB_PASSWORD);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    print('接続しました。');
    >             
    //SQL文を作る(新規レコード追加)
     $sql = "INSERT friend(name,price) VALUES
    (‘フライドポテト’,100),
    ('タコス’,200),
    (‘フライドチキン’,300)";
    //プリペアドステートメントを作る
    $stm = $pdo->prepare($sql);
    //SQL文を実行
    $stm->execute();           
    }
    catch(PDOException $e){
    print('ERROR:'.$e->getMessage());
    exit;
    }
    ?>
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/TTW49.png)](https://i.stack.imgur.com/TTW49.png)


CC BY-SA 4.0
2018-07-24T05:29:38.250
46895
2018-07-24T05:58:20.100
2020-06-17T08:14:45.997
-1
29244
question
php phpmyadmin
INSERTしたいけど、できない。(PDO)


`print`のあとに不要な文字列が入っているためそこで止まっているのではないでしょうか？

[code]

    print('接続しました。');
    >
    
[/code]

おそらくPHPエラーが出力されないようになっていると思われるため、[`error_reporting`](http://php.net/manual/ja/function.error-
reporting.php)をファイル先頭に追加してエラーを表示するようにすればエラーが出るかと思います。

[code]

    error_reporting(E_ALL); // 全てのエラーを表示する
    
[/code]


CC BY-SA 4.0
2018-07-24T05:44:36.460
46896
2018-07-24T05:44:36.460
28772
46895
answer