ALTER table : テーブルのカラムを削除、追加等の操作
【例】データ(行)を途中削除すると、auto_incrementの列は過去の数値のままとなる。そのため再度番号を割り振る必要がある。
[MySQL] AUTO_INCREMENTの番号を振り直す方法 | Search Light(CakePHP PHP jQuery JavaScript CSS Linux MySQLMac) (searchlight8.com)
$pdo->query(‘ALTER table wp_zhongwen drop column No’); //現在のauto_increment列を削除
$pdo->query(‘ALTER table wp_zhongwen add No int(11) primary key not null auto_increment first;’); //再度設定
$pdo->query(‘ALTER table wp_zhongwen AUTO_INCREMENT = 1 column No’); //1から数値を再割り付け
delete : データを削除する。
update : DBのデータを更新(修正)する。
入力画面(表形式表示ではない) page-zhongwen.php 参考:php超入門 page230
foreach ($pdo->query('select * from wp_zhongwen') as $row) {
// echo "\t<tr>\n";
echo '<form action="http://kawana.php.xdomain.jp/wp-content/themes/twentynineteen_child/update-output.php" method="post">';
echo '<input type="hidden" name="No" value="', $row['No'], '">';
echo '<div class="td0">', $row['No'], '</div> ';
echo '<div class="td1">';
echo '<input type="text" name="Japanese" value="', $row['Japanese'], '">';
echo '</div> ';
echo '<div class="td1">';
echo ' <input type="text" name="zhongwen" value="', $row['zhongwen'], '">';
echo '</div> ';
echo '<div class="td1">';
echo ' <input type="text" name="check" value="', $row['mark'], '">';
echo '</div> ';
echo '<div class="td2"><input type="submit" value="更新"></div>';
echo '</form>';
echo "\n";
}
当初「mark」を「check」としたが、checkはコードとして意味を持つようで、更新がなされなかった。
update-output.php
<?php
$pdo=new PDO('mysql:host=mysql1.php.xdomain.ne.jp;dbname=kawana_wp6','kawana_masa','yurika511');
$sql=$pdo->prepare('update wp_zhongwen set Japanese=?, zhongwen=?, mark=? where No=?');
if (empty($_REQUEST['Japanese'])) {
echo '日本語を入力してください。';
} else
//if (!preg_match('/[0-9]+/', $_REQUEST['zhongwen'])) { ・・数値入力の場合のエラー表示
if (empty($_REQUEST['zhongwen'])) {
echo '中国語を入力してください。';
} else
if ($sql->execute(
[htmlspecialchars($_REQUEST['Japanese']),
$_REQUEST['zhongwen'], $_REQUEST['mark'], $_REQUEST['No']] //上記$sqlの?の順番にする。
)) {
echo '更新に成功しました。';
} else {
echo '更新に失敗しました。';
echo '<br>';
print_r($_REQUEST['Japanese']);
echo '<br>';
print_r($_REQUEST['zhongwen']);
echo '<br>';
print_r($_REQUEST['mark']);
echo '<br>';
print_r($_REQUEST['No']);
}
?>
$wpdb->get_results(“SELECT post_content FROM $wpdb->posts”); : DBよりデータを取り出す。
WordPressからデータベースに直接アクセスする | webOpixel
【例】post_contentを取り出し記述する。
$results = $wpdb->get_results(“SELECT post_content FROM $wpdb->posts”);
foreach ($results as $value) {
print(‘<li>’.$value->post_content.'</li>’);}
$pdo = new PDO($dsn, $username, $password, $driver_options); : データベースと接続 PHP
global $wpdb;
ini_set(‘display_errors’,1);
$pdo=new PDO(‘mysql:host=mysql1.php.xdomain.ne.jp;dbname=kawana_***’,’kawana_***’,’**********’);
echo “Normally done.”;
select * from wp_zhongwen : DBよりデータを検索・末尾のデータより表示
MySQLで最後のレコード(一番最新)から検索 | ハトらぼ (hatolabo.com)
基本:
$pdo->query(‘select * from wp_zhongwen‘)
末尾(最新)のデータより検索:
$pdo->query(‘select * from wp_zhongwen order by No desc‘)
//使用例 page-zhongwen.php 一覧表作成
global $wpdb;
ini_set('display_errors',1);
$pdo=new PDO('mysql:host=mysql1.php.xdomain.ne.jp;dbname=kawana_wp6','kawana_****','*********');
echo "<table class='main-chart'>\n";
echo "\t<tr class='trNo'><th class='th-No'>No</th><th class='th-Japanese'>日本語</th><th class='th-zhongwen'>中文</th><th class='th-sentaku'></th><th class='th-tdsubmit'></th></tr>\n";
foreach ($pdo->query('select * from wp_zhongwen order by No desc') as $row) {
echo "\t<tr class='chart-zhongwen0'>\n";
echo'<form action="http://kawana.php.xdomain.jp/zhongwen-2" method="post">';
echo "\t\t<td type='hidden' class='tdNo1'><input class='main-tdNo' name='No' value='{$row['No']}'></td>\n";
echo "\t\t<td class='chart-Japanese'>{$row['Japanese']}</td>\n";
echo "\t\t<td class='chart-zhongwen'>{$row['zhongwen']}</td>\n";
echo "\t\t<td class='chart-sentaku'><input type='checkbox' name='sentaku' value='1' ></td>\n";
echo "\t\t<td class='chart-tdsubmit'><input type='submit' value='選択'></td>\n";
echo'</form>';
echo "\t</tr>\n";
}
where:選択した条件に従い検索表示する。選択したsubmitの条件に従い検索表示する。
page-zhongwen-main.php
<div class="btn-main">
<form action="http://kawana.php.xdomain.jp/zhongwen-hyoji" method="post">
<input type="hidden" name="rank" value='1'>
<input class="main-kadai" type='submit' value='課題-1'>
</form>
<form action="http://kawana.php.xdomain.jp/zhongwen-hyoji" method="post">
<input type="hidden" name="rank" value='all'>
<input class="main-kadai" type='submit' value='課題-all'>
</form>
<button class="main-tsuika" type=“button” onclick="location.href='http://kawana.php.xdomain.jp/wp-content/themes/twentynineteen_child/zhongwen'">追加・更新・削除</button>
</div>
複数の<form>を使い遷移先に送るvalueの値を変える。
rankが1のデータのみ表示する、または全て表示するかを選択する。
page-zhongwen-hyoji.php
if($_REQUEST['rank']=="all"){
$sql=$pdo->prepare('select * from wp_zhongwen order by No desc') ;
$sql->execute();
}
else{
$sql=$pdo->prepare('select * from wp_zhongwen where rank <>0 and rank<=? order by No desc') ;
$sql->execute([$_REQUEST['rank']]);
}
foreach($sql as $row){ **以下省略**
rankが “all” の場合where条件はないため全てのデータが表示される。
rankが “1” の場合 “1”のデータのみ表示する。この場合rankのフィールドはINTのため値を入力しないデータは”0″になる。従い”0″以外で”1″以下のデータを表示する。
フィールドを追加:テーブルにフィールドを追加する。
投稿:テーブルにフィールドを追加 – Kawana Lab (xdomain.jp)
WordPress DB情報の所在
WordPressでデータベースにアクセスする方法:$wpdbの使い方 | デジライン (simple-was-best.com)
wp-config.php に記述がある。
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'wordpress' );
/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'lilygff43khf' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', '35o7auirffrfa****' );
/** MySQL のホスト名 */
define( 'DB_HOST', 'localhost' );
関数リファレンス/wpdb Class – WordPress Codex 日本語版 (osdn.jp)
MySQL基礎
WordPressで学ぶデータベース(MySQL)の基礎 | webOpixel
【画像付き】phpMyAdminによるDBエクスポート&インポート手順 | WordPressの引越し代行なら『サイト引越し屋さん』 (site-hikkoshi.com)