MySQL

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)

XFREE(エックスフリー) ユーザーフォーラム

MySQL基礎
WordPressで学ぶデータベース(MySQL)の基礎 | webOpixel

【画像付き】phpMyAdminによるDBエクスポート&インポート手順 | WordPressの引越し代行なら『サイト引越し屋さん』 (site-hikkoshi.com)