1	
0からのプログラミング講座
PHP+MySQLのヒント
© 株式会社HEART QUAKE
本⽂文書のいかなる部分をも、事前の許可なく複写したり転送したりすることはできません。
2	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
うまく⾏行行かない場合
l  エラーはでないが、データベースにデータが⼊入らない場合
エラーはでないが、
phpMyAdminを⾒見見てみると
データが追加されていない場合
3	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
PHP+MySQLのエラーを探す
l  エラーはでないが、データベースにデータが⼊入らない場合
-  実⾏行行しているSQLが間違っている可能性が⾼高い
<?php
$connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”);
mysql_query(”SET NAMES utf8”,$connect);
/*
⾚赤字の部分のSQLが間違っている可能性が⾼高い。
では、どうやって間違いを⾒見見つけたら良良いのか?
*/
mysql_db_query(”b1_sato” , ”insert product_tbl(product_name,price)
values({$_GET[’product_name’} ,{$_GET[’price’]}” );
mysql_close($connect);
?>
4	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
PHP+MySQLのエラーを探す
l  エラーの原因を探すことをデバッグという
<?php
$connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”);
mysql_query(”SET NAMES utf8”,$connect);
mysql_db_query(”b1_sato” , ”insert product_tbl(product_name,price)
values({$_GET[’product_name’} ,{$_GET[’price’]}” );
/*
SQLの部分だけecho = 画⾯面に表⽰示  してみると・・・(結果は次のページ)
*/
echo ”insert product_tbl(product_name,price)
values({$_GET[’product_name’} ,{$_GET[’price’]}” ;
mysql_close($connect);
?>
5	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
処理理の流流れ
l  エラーはでないが、データベースにデータが⼊入らない場合
画⾯面にSQLが表⽰示される
これが間違っている可能性が
⾼高い!!
6	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
レコードの操作
l  間違っているかどうかやってみよう!
-  http://a1.zeroprm.com/phpmyadmin/
-  ユーザ名:b1_sato、パスワード:b1_sato
ü b1_satoを選択する
-  SQLのタブをクリックして、先ほどのSQLをはりつけて実⾏行行  
してみる
エラー発⽣生。
だから、データベースに
データが⼊入らなかった。
7	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
レコードの操作
l  SQLを直そう!
-  「バスタオル」は数値ではなく、⽂文字なので、前後に
-  シングルクォーテーションが必要
エラーが消えた!
シングルクォーテーションを
追加すれば良良かったのか!
8	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
PHP+MySQLのエラーを探す
l  シングルクォーテーションを追加しよう!
<?php
$connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”);
mysql_query(”SET NAMES utf8”,$connect);
/*
シングルクォーテーションを追加した
*/
mysql_db_query(”b1_sato” , ”insert product_tbl(product_name,price)
values(’{$_GET[’product_name’}’ ,{$_GET[’price’]}” );
mysql_close($connect);
?>
9	
Copyright (c) 株式会社HEART QUAKE All rights reserved .	
お疲れ様でした!!

System insert hint

  • 1.
  • 2.
    2 Copyright (c) 株式会社HEARTQUAKE All rights reserved . うまく⾏行行かない場合 l  エラーはでないが、データベースにデータが⼊入らない場合 エラーはでないが、 phpMyAdminを⾒見見てみると データが追加されていない場合
  • 3.
    3 Copyright (c) 株式会社HEARTQUAKE All rights reserved . PHP+MySQLのエラーを探す l  エラーはでないが、データベースにデータが⼊入らない場合 -  実⾏行行しているSQLが間違っている可能性が⾼高い <?php $connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”); mysql_query(”SET NAMES utf8”,$connect); /* ⾚赤字の部分のSQLが間違っている可能性が⾼高い。 では、どうやって間違いを⾒見見つけたら良良いのか? */ mysql_db_query(”b1_sato” , ”insert product_tbl(product_name,price) values({$_GET[’product_name’} ,{$_GET[’price’]}” ); mysql_close($connect); ?>
  • 4.
    4 Copyright (c) 株式会社HEARTQUAKE All rights reserved . PHP+MySQLのエラーを探す l  エラーの原因を探すことをデバッグという <?php $connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”); mysql_query(”SET NAMES utf8”,$connect); mysql_db_query(”b1_sato” , ”insert product_tbl(product_name,price) values({$_GET[’product_name’} ,{$_GET[’price’]}” ); /* SQLの部分だけecho = 画⾯面に表⽰示  してみると・・・(結果は次のページ) */ echo ”insert product_tbl(product_name,price) values({$_GET[’product_name’} ,{$_GET[’price’]}” ; mysql_close($connect); ?>
  • 5.
    5 Copyright (c) 株式会社HEARTQUAKE All rights reserved . 処理理の流流れ l  エラーはでないが、データベースにデータが⼊入らない場合 画⾯面にSQLが表⽰示される これが間違っている可能性が ⾼高い!!
  • 6.
    6 Copyright (c) 株式会社HEARTQUAKE All rights reserved . レコードの操作 l  間違っているかどうかやってみよう! -  http://a1.zeroprm.com/phpmyadmin/ -  ユーザ名:b1_sato、パスワード:b1_sato ü b1_satoを選択する -  SQLのタブをクリックして、先ほどのSQLをはりつけて実⾏行行   してみる エラー発⽣生。 だから、データベースに データが⼊入らなかった。
  • 7.
    7 Copyright (c) 株式会社HEARTQUAKE All rights reserved . レコードの操作 l  SQLを直そう! -  「バスタオル」は数値ではなく、⽂文字なので、前後に -  シングルクォーテーションが必要 エラーが消えた! シングルクォーテーションを 追加すれば良良かったのか!
  • 8.
    8 Copyright (c) 株式会社HEARTQUAKE All rights reserved . PHP+MySQLのエラーを探す l  シングルクォーテーションを追加しよう! <?php $connect = mysql_connect(”localhost”,”b1_sato”,”b1_sato”); mysql_query(”SET NAMES utf8”,$connect); /* シングルクォーテーションを追加した */ mysql_db_query(”b1_sato” , ”insert product_tbl(product_name,price) values(’{$_GET[’product_name’}’ ,{$_GET[’price’]}” ); mysql_close($connect); ?>
  • 9.
    9 Copyright (c) 株式会社HEARTQUAKE All rights reserved . お疲れ様でした!!