<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>phpMyAdmin &#8211; PHPプログラミングの教科書 [php1st.com]</title>
	<atom:link href="https://php1st.com/phpmyadmin/feed" rel="self" type="application/rss+xml" />
	<link>https://php1st.com</link>
	<description>気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。</description>
	<lastBuildDate>Mon, 27 May 2013 02:19:28 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>phpMyAdminのSELECT文に付加される「WHERE 1」とは</title>
		<link>https://php1st.com/1354</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Mon, 27 May 2013 02:19:28 +0000</pubDate>
				<category><![CDATA[phpMyAdmin]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1354</guid>

					<description><![CDATA[phpMyAdminでテーブルを選択し「SQL」メニューからSQL文を入力しようとすると、SELECT文の末尾に「WHERE 1」というWHERE句が付いています。 WHERE句はデータを抽出するときの条件で、「WHER [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>phpMyAdminでテーブルを選択し「SQL」メニューからSQL文を入力しようとすると、SELECT文の末尾に<strong>「WHERE 1」</strong>というWHERE句が付いています。</p>
<div id="attachment_1357" style="width: 402px" class="wp-caption alignnone"><a href="http://php1st.com/wp-content/uploads/2013/05/0061.jpg"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-1357" src="http://php1st.com/wp-content/uploads/2013/05/0061.jpg" alt="「WHERE 1」の付いたSELECT文" title="「WHERE 1」の付いたSELECT文" width="392" height="228" class="size-full wp-image-1357" srcset="https://php1st.com/wp-content/uploads/2013/05/0061.jpg 392w, https://php1st.com/wp-content/uploads/2013/05/0061-300x174.jpg 300w" sizes="(max-width: 392px) 100vw, 392px" /></a><p id="caption-attachment-1357" class="wp-caption-text">「WHERE 1」の付いたSELECT文</p></div>
<p>WHERE句はデータを抽出するときの条件で、「WHERE id = 100」（idフィールドが100のデータを抽出）のように使います。</p>
<p>「WHERE 1」は、<strong>無条件で全データを返す</strong>条件として使われます。</p>
<p>前置きが長くなりましたが、「WHERE 1」は、何も条件を指定せずに実行するSELECT文と同じ結果になります。つまり、</p>
<p>SELECT * FROM `table1` WHERE 1</p>
<p>は、<strong>「WHERE 1」を取り除いた次のSELECT文と同じ</strong>ということです。</p>
<p>SELECT * FROM `table1`</p>
<p>「WHERE 1」が邪魔に思える方のために先に書いておくと、<strong>「WHERE 1」を削除しても問題ありません</strong>。</p>
<h2>なぜ「WHERE 1」が付加されているのか</h2>
<p>「WHERE 1」を付加するメリットは、SELECT文に追加する条件を<strong>「AND」で書き始めれば良い</strong>ということです。</p>
<pre class="brush: php; highlight: [2,3]; title: 先頭に「WHERE 1」があれば条件はANDで始められる; notranslate">
SELECT * FROM `table1` WHERE 1
AND id = 1
AND ag = 30
</pre>
<p>「WHERE 1」がない場合は、最初の条件は「WHERE」から始める必要があります。</p>
<pre class="brush: php; highlight: [2,3]; title: 「WHERE 1」がない場合の条件は「WHERE」から始める; notranslate">
SELECT * FROM `table1` 
WHERE id = 1
AND ag = 30
</pre>
<p>あまりに簡単すぎてメリットがよくわからないかもしれませんが、編集が楽なのです。たとえば、上記のSQLから「id = 1」の行を削除したい場合は、「<strong>AND </strong>ag = 30」を「<strong>WHERE </strong>ag = 30」に変更する必要があります。</p>
<pre class="brush: php; highlight: [2]; title: 「WHERE 1」がない場合、条件の変更が少し面倒; notranslate">
SELECT * FROM `table1` 
WHERE ag = 30
</pre>
<p>「WHERE 1」が付加されている場合は、条件を削除したい場合でも、「AND id = 1」を削除すれば済み、他の行を変更する必要はありません。WHERE句の条件を何度も変更して試行錯誤する場合は、その方が好都合です。先頭にWHEREが付いているかどうか気にせず、条件を編集できるということです。</p>
<h2>PHPスクリプトでSQLを組み立てるときも楽</h2>
<p>WHEREの先頭が「WHERE 1」になっていると、PHPスクリプトでSQLを組み立てるときも少し楽ができます。たとえば、ANDがいくつか続く次のようなSQLを組み立てるPHPスクリプトを考えてみましょう。</p>
<div id="attachment_1363" style="width: 642px" class="wp-caption alignnone"><img decoding="async" aria-describedby="caption-attachment-1363" src="http://php1st.com/wp-content/uploads/2013/05/007.jpg" alt="検索キーワードからSQLを組み立てる" title="検索キーワードからSQLを組み立てる" width="632" height="138" class="size-full wp-image-1363" srcset="https://php1st.com/wp-content/uploads/2013/05/007.jpg 632w, https://php1st.com/wp-content/uploads/2013/05/007-300x65.jpg 300w" sizes="(max-width: 632px) 100vw, 632px" /><p id="caption-attachment-1363" class="wp-caption-text">検索キーワードからSQLを組み立てる</p></div>
<p>「WHERE 1」がないので、<strong>「先頭はWHEREで始めて、それ以降はAND」</strong>のような条件分岐が必要です。</p>
<pre class="brush: php; highlight: [14,15,16,17,18]; title: 検索キーワードをSQLに反映する（「WHERE 1」なしの場合）; notranslate">
&lt;?php
// 検索キーワード
$keyword = &quot;西沢直木 東京 千駄木&quot;;

// SQL
$sql = &quot;SELECT * FROM posts&quot;;

// キーワードを空白で分割する
$array = explode(&quot; &quot;, $keyword);

// 分割された個々のキーワードをSQLに反映する
$where = &quot;&quot;;
for ($i = 0; $i &lt; count($array); $i++) {
    if ($i == 0) {
        $where .= &quot; WHERE &quot;;
    } else {
        $where .= &quot; AND &quot;;
    }
    $where .= &quot;(contents LIKE '%$array&#x5B;$i]%')&quot;;
}

// 組み立てたSQLを表示する
echo $sql . $where;
?&gt;
</pre>
<p>○実行結果<br />
SELECT * FROM posts<br />
WHERE (contents LIKE &#8216;%西沢直木%&#8217;)<br />
AND (contents LIKE &#8216;%東京%&#8217;)<br />
AND (contents LIKE &#8216;%千駄木%&#8217;)</p>
<p>これでも問題ありませんが、次のように、WHERE句を「WHERE 1」で始めておけば、「先頭はWHERE、それ以降はAND」という条件分岐が不要です。若干ですがPHPスクリプトもスッキリしたコードになります。</p>
<pre class="brush: php; highlight: [12,14]; title: 検索キーワードをSQLに反映する（「WHERE 1」有りの場合）; notranslate">
&lt;?php
// 検索キーワード
$keyword = &quot;西沢直木 東京 千駄木&quot;;

// SQL
$sql = &quot;SELECT * FROM posts&quot;;

// キーワードを空白で分割する
$array = explode(&quot; &quot;, $keyword);

// 分割された個々のキーワードをSQLに反映する
$where = &quot; WHERE 1&quot;;
for ($i = 0; $i &lt; count($array); $i++) {
    $where .= &quot; AND (contents LIKE '%$array&#x5B;$i]%')&quot;;
}

// 組み立てたSQLを表示する
echo $sql . $where;
?&gt;
</pre>
<p>○実行結果<br />
SELECT * FROM posts WHERE 1<br />
AND (contents LIKE &#8216;%西沢直木%&#8217;)<br />
AND (contents LIKE &#8216;%東京%&#8217;)<br />
AND (contents LIKE &#8216;%千駄木%&#8217;)</p>
<h2>まとめ</h2>
<p>まとめると、「WHERE 1」はSQLの編集を楽にするために仮の条件が付加されているもので、<strong>必須ではありません。</strong>取り除いても問題はありませんが、<strong>PHPスクリプトを効率的に組み立てるコツ</strong>としても覚えておきましょう。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>phpMyAdminで作成したハイフン付きのテーブル名でエラーになる</title>
		<link>https://php1st.com/1260</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Wed, 07 Nov 2012 01:54:27 +0000</pubDate>
				<category><![CDATA[phpMyAdmin]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1260</guid>

					<description><![CDATA[phpMyAdminで作成した「customer-name」のようなハイフンが付いた名前のテーブルに、自作のPHPスクリプトからアクセスすると、うまくいかない場合があります。 原因は、基本的にはテーブル名にハイフンが使え [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>phpMyAdminで作成した<strong>「customer-name」</strong>のようなハイフンが付いた名前のテーブルに、自作のPHPスクリプトからアクセスすると、うまくいかない場合があります。</p>
<p>原因は、基本的にはテーブル名にハイフンが使えないからです。</p>
<pre class="brush: php; title: ○うまくいかないデータベース処理; notranslate">
&lt;?php
$dsn = &quot;mysql:host=localhost;dbname=test&quot;;
$conn = new PDO($dsn, &quot;nisi&quot;, &quot;qazxsw&quot;);

$sql = &quot;SELECT * FROM customer-name&quot;;
$stmt = $conn-&gt;prepare($sql);
$stmt-&gt;execute();

while ($row = $stmt-&gt;fetch()) {
    echo $row&#x5B;&quot;name&quot;];
}
?&gt;
</pre>
<div class="cd">
#1064 &#8211; 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 &#8216;-name&#8217; at line
</div>
<p>対策として、MySQLの場合は、テーブル名をバッククォート「`」で囲んで、使えない文字を含むテーブル名をエスケープします。</p>
<pre class="brush: php; highlight: [5]; title: ○ハイフン付きのテーブル名をエスケープ; notranslate">
&lt;?php
$dsn = &quot;mysql:host=localhost;dbname=test&quot;;
$conn = new PDO($dsn, &quot;nisi&quot;, &quot;qazxsw&quot;);

$sql = &quot;SELECT * FROM `customer-name`&quot;;
$stmt = $conn-&gt;prepare($sql);
$stmt-&gt;execute();

while ($row = $stmt-&gt;fetch()) {
    echo $row&#x5B;&quot;name&quot;];
}
?&gt;
</pre>
<p>バッククォートについて詳しくは、以下の記事を参考にしてください。<br />
<a href="http://php1st.com/1184/" title="phpMyAdminのSQLに付加される「’」に似た記号「`」は何？">phpMyAdminのSQLに付加される「’」に似た記号「`」は何？</a></p>
<div class="pt">
phpMyAdminでは、ハイフン付きのテーブル名が自動でエスケープされるため、phpMyAdminでの作業（テーブル作成、データ表示、編集など）では問題なくハイフン付きのテーブルを扱うことができます。そのため、自作PHPスクリプトを実行するまで問題に気づかないかもしれません。
</div>
<p>また、抜本的な対策としては、テーブル名にハイフンを使わず、代わりにアンダーバー「&nbsp;_&nbsp;」を使う方法があります。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>phpMyAdminで似たような行を繰り返し作成する方法</title>
		<link>https://php1st.com/1240</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Tue, 06 Nov 2012 12:37:38 +0000</pubDate>
				<category><![CDATA[phpMyAdmin]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1240</guid>

					<description><![CDATA[phpMyAdminでテストデータを入力するときは、既存データと同じようなデータを繰り返し入力したいことがあります。その場合は、既存データの「編集」メニューを使います。 テーブルのデータを一覧表示して、コピー元にしたいデ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>phpMyAdminでテストデータを入力するときは、既存データと同じようなデータを繰り返し入力したいことがあります。その場合は、既存データの「編集」メニューを使います。</p>
<ol>
<li>テーブルのデータを一覧表示して、コピー元にしたいデータの「編集」をクリックします。
<div id="attachment_1241" style="width: 584px" class="wp-caption alignnone"><img decoding="async" aria-describedby="caption-attachment-1241" src="http://php1st.com/wp-content/uploads/2012/11/030.png" alt="コピー元のデータの「編集」をクリック" title="コピー元のデータの「編集」をクリック" width="574" height="133" class="size-full wp-image-1241" srcset="https://php1st.com/wp-content/uploads/2012/11/030.png 574w, https://php1st.com/wp-content/uploads/2012/11/030-300x70.png 300w" sizes="(max-width: 574px) 100vw, 574px" /><p id="caption-attachment-1241" class="wp-caption-text">コピー元のデータの「編集」をクリック</p></div>
</li>
<li>修正したい部分を直します。主キーが重複しないように、AUTO_INCREMENTの場合は空にするのがポイントです（または重複しない主キーを入力）。<br />
<div id="attachment_1244" style="width: 474px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1244" src="http://php1st.com/wp-content/uploads/2012/11/0311.png" alt="部分的に修正してAUTO_INCREMENTは空にする" title="部分的に修正してAUTO_INCREMENTは空にする" width="464" height="228" class="size-full wp-image-1244" srcset="https://php1st.com/wp-content/uploads/2012/11/0311.png 464w, https://php1st.com/wp-content/uploads/2012/11/0311-300x147.png 300w" sizes="auto, (max-width: 464px) 100vw, 464px" /><p id="caption-attachment-1244" class="wp-caption-text">部分的に修正してAUTO_INCREMENTは空にする</p></div></p>
</li>
<li>入力フォームの下から、<strong>「新しい行として挿入する」</strong>を選択して実行します。編集画面のデフォルトでは、「保存する」になっており、そのままでは単純に既存データが変更されるだけなので、注意が必要です。
<div id="attachment_1245" style="width: 271px" class="wp-caption alignnone"><a href="http://php1st.com/wp-content/uploads/2012/11/0321.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1245" src="http://php1st.com/wp-content/uploads/2012/11/0321-261x300.png" alt="新しい行として挿入する" title="新しい行として挿入する" width="261" height="300" class="size-medium wp-image-1245" srcset="https://php1st.com/wp-content/uploads/2012/11/0321-261x300.png 261w, https://php1st.com/wp-content/uploads/2012/11/0321.png 460w" sizes="auto, (max-width: 261px) 100vw, 261px" /></a><p id="caption-attachment-1245" class="wp-caption-text">新しい行として挿入する</p></div>
</li>
<li>実行すると、同じような行が作成されます。
<div id="attachment_1246" style="width: 443px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1246" src="http://php1st.com/wp-content/uploads/2012/11/033.png" alt="同じような行が作成される" title="同じような行が作成される" width="433" height="77" class="size-full wp-image-1246" srcset="https://php1st.com/wp-content/uploads/2012/11/033.png 433w, https://php1st.com/wp-content/uploads/2012/11/033-300x53.png 300w" sizes="auto, (max-width: 433px) 100vw, 433px" /><p id="caption-attachment-1246" class="wp-caption-text">同じような行が作成される</p></div>
<p>「Duplicate entry &#8216;1&#8217; for key &#8216;PRIMARY&#8217;」のようなエラーが発生するときは、AUTO_INCREMENTの項目を空にしたかどうか、確認しましょう。このエラーは、同じ主キーで新しいデータを作成したことが原因で発生します（主キーは重複できない）。</p>
<div id="attachment_1249" style="width: 336px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1249" src="http://php1st.com/wp-content/uploads/2012/11/034.png" alt="「Duplicate entry for key &#039;PRIMARY&#039;」エラー" title="「Duplicate entry for key &#039;PRIMARY&#039;」エラー" width="326" height="316" class="size-full wp-image-1249" srcset="https://php1st.com/wp-content/uploads/2012/11/034.png 326w, https://php1st.com/wp-content/uploads/2012/11/034-300x290.png 300w" sizes="auto, (max-width: 326px) 100vw, 326px" /><p id="caption-attachment-1249" class="wp-caption-text">「Duplicate entry for key &#039;PRIMARY&#039;」エラー</p></div>
</li>
</ol>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>phpMyAdminの「TRUNCATE TABLE」とは（DROP TABLEとの違いに注意）</title>
		<link>https://php1st.com/1188</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Fri, 02 Nov 2012 03:04:07 +0000</pubDate>
				<category><![CDATA[phpMyAdmin]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1188</guid>

					<description><![CDATA[phpMyAdminでテーブルのデータをすべて削除するため、「テーブルを空にする」メニューを選択すると、『本当に実行しますか？「TRUNCATE TABLE table1;」』のような確認メッセージが表示されます。 注意 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>phpMyAdminでテーブルのデータをすべて削除するため、「テーブルを空にする」メニューを選択すると、『本当に実行しますか？「TRUNCATE TABLE table1;」』のような確認メッセージが表示されます。</p>
<div id="attachment_1216" style="width: 588px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1216" src="http://php1st.com/wp-content/uploads/2012/11/024.png" alt="phpMyAdminでテーブルを空にするとき" title="phpMyAdminでテーブルを空にするとき" width="578" height="394" class="size-full wp-image-1216" srcset="https://php1st.com/wp-content/uploads/2012/11/024.png 578w, https://php1st.com/wp-content/uploads/2012/11/024-300x204.png 300w" sizes="auto, (max-width: 578px) 100vw, 578px" /><p id="caption-attachment-1216" class="wp-caption-text">phpMyAdminでテーブルを空にするとき</p></div>
<p><strong>注意が必要</strong>な点は、「テーブルを<strong>空にする</strong>」と「テーブルを<strong>削除する</strong>」のメニューが並んでおり、<strong>間違えてクリック</strong>したときに、次のように確認メッセージが判断しづらいことです。</p>
<p>○確認メッセージの例<br />
「テーブルを空にする」では、本当に実行しますか？「<strong>TRUNCATE TABLE</strong> table1;」<br />
「テーブルを削除する」では、本当に実行しますか？「<strong>DROP TABLE</strong> table1;」</p>
<p>2つのSQLは似ていますが、<strong>結果はまったく異なります。やり直しがきかないので注意</strong>してください。以下、違いをまとめます。</p>
<h2>TRUNCATE TABLEはテーブルを空にする</h2>
<p><strong>「TRUNCATE TABLE」</strong>は、テーブルを空にするSQLです。すべてのデータが削除されます。たとえば、100件のテスト<strong>データをクリア</strong>するような目的で使います（中身を空っぽに）。</p>
<div id="attachment_1189" style="width: 362px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1189" src="http://php1st.com/wp-content/uploads/2012/11/021.png" alt="テーブルを空にするTRUNCATE TABLE" title="テーブルを空にするTRUNCATE TABLE" width="352" height="143" class="size-full wp-image-1189" srcset="https://php1st.com/wp-content/uploads/2012/11/021.png 352w, https://php1st.com/wp-content/uploads/2012/11/021-300x121.png 300w" sizes="auto, (max-width: 352px) 100vw, 352px" /><p id="caption-attachment-1189" class="wp-caption-text">テーブルを空にするTRUNCATE TABLE</p></div>
<h2>【注意】DROP TABLEはテーブルを削除する</h2>
<p><strong>「DROP TABLE」</strong>は、テーブルを削除するSQLです。データのクリアではなく<strong>テーブル自体が消去されます。間違えないようにしましょう</strong>。</p>
<p>特に、テーブルを空にしようとして、<strong>間違えて「テーブルの削除」を選択</strong>してしまったときに、確認メッセージを勘違いしないように注意してください。</p>
<div id="attachment_1190" style="width: 362px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1190" src="http://php1st.com/wp-content/uploads/2012/11/022.png" alt="テーブルを削除するDROP TABLE" title="テーブルを削除するDROP TABLE" width="352" height="143" class="size-full wp-image-1190" srcset="https://php1st.com/wp-content/uploads/2012/11/022.png 352w, https://php1st.com/wp-content/uploads/2012/11/022-300x121.png 300w" sizes="auto, (max-width: 352px) 100vw, 352px" /><p id="caption-attachment-1190" class="wp-caption-text">テーブルを削除するDROP TABLE</p></div>
<div class="pt">
実は、TRUNCATE TABLEでもテーブルを削除しています。いったん削除してから新たなテーブルを再作成する流れでテーブルを空にするので、連番も1から始まるようにリセットされます。
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>phpMyAdminのSQLに付加される「&#8217;」に似た記号「`」は何？</title>
		<link>https://php1st.com/1184</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Fri, 02 Nov 2012 02:23:23 +0000</pubDate>
				<category><![CDATA[phpMyAdmin]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1184</guid>

					<description><![CDATA[「&#8217;」に似た記号「`」の正体は？ phpMyAdminでテーブルのデータを表示すると、実行されたSQLにシングルクォート「&#8217;」を斜めにしたような記号「`」が付加されます。たとえば、次の「produ [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>「&#8217;」に似た記号「`」の正体は？</h2>
<p>phpMyAdminでテーブルのデータを表示すると、実行されたSQLにシングルクォート「&#8217;」を斜めにしたような記号<strong>「`」</strong>が付加されます。たとえば、次の「products」の前後の記号です。</p>
<div id="attachment_1185" style="width: 356px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1185" src="http://php1st.com/wp-content/uploads/2012/11/020.png" alt="実行したSQLに付加されるバッククォート" title="実行したSQLに付加されるバッククォート" width="346" height="119" class="size-full wp-image-1185" srcset="https://php1st.com/wp-content/uploads/2012/11/020.png 346w, https://php1st.com/wp-content/uploads/2012/11/020-300x103.png 300w" sizes="auto, (max-width: 346px) 100vw, 346px" /><p id="caption-attachment-1185" class="wp-caption-text">実行したSQLに付加されるバッククォート</p></div>
<p>「&#8217;」に似ていますが、「`」は<strong>「バッククォート」</strong>という記号です。整理しておきましょう。</p>
<p>りんごの前後の「&#8217;」はシングルクォート<br />
productsの前後の「`」はバッククォート</p>
<p>バッククォートは、キーボードでは「＠」の上にあり、Shift＋＠キーで入力できます。</p>
<p>バッククォートについて2つのポイントを説明します。</p>
<h3>バッククォートは必須ではない</h3>
<p>まず、SQLではバッククォートは必須ではありません。次のようにバッククォートを付けずにSQLを入力しても問題なく実行されます。</p>
<pre class="brush: php; title: ○バッククォートがなくてもSQLに問題はない; notranslate">
SELECT * 
FROM products 
WHERE products LIKE 'りんご'
</pre>
<p>「りんご」の前後のシングルクォート「&#8217;」は必須です。</p>
<h2>バッククォートが付加されるのは何のため？</h2>
<p>では、何のためにphpMyAdminではバッククォートが付加されるのでしょうか。</p>
<p>それは、「SELECT * FROM <strong>`table`</strong>」のようなSQLも実行可能にするためです。</p>
<p>少し難しく言えば、<strong>予約語をエスケープ</strong>するためです。</p>
<p>予約語とは、MySQL側で特別なキーワードだと認識される語句で、TABLE、SQL、INDEX、LOCKなどがあります。このようなキーワードは、<strong>そのままテーブル名や列名などに使うことはできません</strong>。</p>
<p>ただし、MySQLでは<strong>予約語をバッククォートで囲む</strong>ことで、テーブル名や列名として使用可能になります。</p>
<p>こうした点を考慮して、phpMyAdminで実行されるSQLにはバッククォートが付加されています。</p>
<p>「使用可能」と言っても、一般的にSQLで使われる語句なので、テーブル名などにはふさわしくありません。できるだけ使わないようにしましょう。</p>
<p>予約語について詳しくは、MySQLのマニュアルを参照してください。</p>
<p>○<a href="http://dev.mysql.com/doc/refman/5.1/ja/reserved-words.html" title="MySQLの予約語" target="_blank">MySQLの予約語</a></p>
<p>また、「pop-products」のように、<strong>ハイフンでつながれた名前のテーブル</strong>も、そのままでは使えないので、「SELECT * FROM `pop-products`」のようにバッククォートで囲むことになります。</p>
<p>繰り返しますが、<strong>「通常の」SQLではバッククォートは不要</strong>です。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
