MySQL
- Rlogin でMySQLのインストール
RloginでMySQLをインストールしたいのですが、うまく行きません。 yum install mysql-server と入力すると、mariadb がインストールされてしまいます。これで良いのでしょうか?
- PHPスペース区切り、複数単語が検索できません
お日ごろから大変お忙しい中、この投稿を見て頂きまして誠に有難うございます。私はPHP初心者です。もしこの投稿記事内容自体が私の勉強不足のために不適切な内容となっておりましたら大変申し訳ございません。至らない能力をご容赦して頂きたく存じ上げます。 現在、個人のサイトを作成しております。そこで合計6000点ほどの点数に対し文言が添えております。その文言(カラム/side_text)をフォーム検索で抽出したいのですが、単語だけならできるのですが、複数単語(スペース区切り)で検索をすると、どうしても上手くいきません。 下記にソースコードがございますので、もしお時間がございましたら、ご教授して頂けますと大変嬉しく思います。 var_dampで各要所をチェックしていったら複数単語でもちゃんとdbc.phpファイルの $result = $stmt->fetchALL(); return $result; まで返しているので、htmlへの出力方法がおかしいのかと思ったのですが、どうしても最後の最後はvar_damp()array(0)になってしまいます。 ▼▼▼▼▼【var_damp(result)の結果】▼▼▼▼▼ 「確定」と「福来い」を検索した場合 string(59) "(side_text LIKE "%確定%") AND (side_text LIKE "%福来い%")" array(0) { } ▲▲▲▲▲【var_damp(result)の結果】▲▲▲▲▲ test.phpページです ▼▼▼▼▼【フォーム検索送信】▼▼▼▼▼ <form action="search.php" method="POST"> <input type="text" name="search" placeholder="検索ワードを入力して下さい" autocomplete="off"> <input type="submit" value="SAERCH"> </form> 【html内の出力結果】 <?php if(isset($results)) : ?> <?php foreach($results as $result) : ?> <?php echo $result['side_text'] ; ?> <?php endforeach ; ?> <?php endif ; ?> ▲▲▲▲▲【フォーム検索送信】▲▲▲▲▲ search.phpページです ▼▼▼▼▼【フォーム検索送信/test.phpから受け取り】▼▼▼▼▼ $err = []; if(!$search = filter_input(INPUT_POST, 'search')){ $err['search'] = '検索ワードを入力して下さい'; } if(count($err) > 0){ $_SESSION = $err; header('Location: test.php'); return; } if(count($err) === 0){ $results = search($_POST['search']); } ▲▲▲▲▲【フォーム検索送信/受け取り】▲▲▲▲▲ dbc.phpページです ▼▼▼▼▼【dbc.phpページ】▼▼▼▼▼ function search(){ $result = false; $keywords = $_POST['search']; $keywords = mb_convert_kana($keywords, 's'); $ary_keyword = preg_split('/[\p{Z}\p{Cc}]++/u', $keywords, 5, PREG_SPLIT_NO_EMPTY); $ary_keyword = explode(" " ,$keywords, 5); $keywordCon = []; foreach( $ary_keyword as $keyword ){ $keywordCon[] = '(side_text LIKE "%' . $keyword . '%")'; } $keywordCon = implode(" AND ", $keywordCon); $sql = "SELECT * FROM test1 WHERE". $keywordCon; var_dump($keywordCon); try{ $stmt = dbc()->prepare($sql); $result = $stmt->execute(); $result = $stmt->fetchALL(); return $result; }catch(\Exception $e){ echo 'Something wrong 3'. $e->getMessage(); return $result; } } ▲▲▲▲▲【dbc.phpページ】▲▲▲▲▲ 間違いだらけのコーディングとは存じ上げますが、どうぞよろしくお願い申し上げます。
- ベストアンサー
- MySQL
- kaede-momiji
- 回答数2
- 入門書には記載されていない。
いつも大変お世話になり誠にありがとうございます。 標記の件。 私は執筆者が書いてくれた文章を保存して誰もが読めるような ブログを作りたいと思います。 しかしながら、私の入門書には保存する箇所が説明されていないように感じるのです。 別の入文書を購入する際には、コマンドなど、どんなのを 詳しく説明されている入文書を選べばいいでしょうか? いつもすみません。 ご回答のほど、宜しくお願い申し上げます。
- MySQL INSERT into
いつも大変お世話になり誠にありがとうございます。 標記の件。 $_postで取ってきたデータがMySQLに挿入できません。 どう直せばいいでしょうか? エラーメッセージは Parse error: syntax error, unexpected variable "$stmt" in C:\xampp\htdocs\kanryou.php on line 12 blog_create.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <form action="/kanryou.php" method="post"> <input type="hidden" name="id" value="<?php echo $id; ?>"> <input type="hidden" name="name" value="<?php echo $name; ?>"> <input type="hidden" name="title" value="<?php echo $title; ?>"> <input type="hidden" name="category" value="<?php echo $category; ?>"> <input type="hidden" name="content" value="<?php echo $content; ?>"> <input type="hidden" name="post_at" value="<?php echo $post_at; ?>"> <input type="submit" value="送信する"> </form> </main> </body> kanryou.php <?php require_once(blog_create.php); try{ $db = new PDO('mysql:dbname=blog_app;host=localhost;charset=utf8','root'); $sql ="INSERT into blog (id,name,title ,category ,content ,post_at)"; ('$_POST["id"],$_POST["name"],$_POST["title"],$_POST["category"],$_POST["content"],$_POST["post_at"]'){ $stmt =$pdo->prepare($sql) $stmt->execute(); echo 'DB接続エラー' . $e->getMessage(); } echo "送信完了です。ありがとうございました。";?> 以上です。 度々申し訳ございません。 どうか教えてください。 宜しくお願い申し上げます。
- DBに日時を格納したい
<input type='hidden'>タグを使ってsubmitボタンが押されたときにDBに送信した日時を格納したいです。DBのタイプがdatetimeの時どのように書かばいいでしょうか。
- ベストアンサー
- MySQL
- 1234567890op
- 回答数3
- $_POSTの内容をMySQLに保存するには?
いつも大変お世話になり誠にありがとうございます。 度々申し訳ございません。 標記の件。 エラーメッセージは Parse error: syntax error, unexpected identifier "into", expecting ")" in C:\xampp\htdocs\kanryou.php on line 9 です。 コードは先ほども提示したように blog_create.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <form action="/kanryou.php" method=""> <input type="submit" value="送信する"> </form> </main> </body> kanryou.php <?php require_once(blog_create.php); try{ $db = new PDO('mysql:dbname=blog_app;host=localhost;charset=utf8','root'); $count = $db->exec(INSERT into blog (id,name,title ,category ,content,post_at) ($_POST["id"],$_POST["name"],$_POST["title"],$_POST["category"],$_POST["content"],$_POST["post_at"]){ echo 'DB接続エラー' . $e->getMessage(); } </main> </body> echo "送信完了です。ありがとうございました。"; ?> 本当に申し訳ありません どうか教えてください。 どこを直せばいいでしょうか? ご回答のほど宜しくお願い申し上げます。
- 【送信】ボタンが無反応!?
いつも大変お世話になり誠にありがとうございます。 標記の件。 色々と試みましたが、何も反応しません。 MySQLに登録して、 「送信完了しました。ありがとうございます。」と出したいのですが、何も反応しません。 form.php <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <h2>ブログフォーム</h2> <form method="POST" action="blog_create.php"> ペンネーム<br> <input type="text" name="name" ><br> ブログタイトル<br> <input type="text" name="title" ><br> カテゴリー<br> <input type="text" name="category" ><br> ブログ本文<br> <textarea name="content" id="content" cols="50" rows="80"></textarea><br> <input type="submit" value="確認画面へ"> </form> <p><a href="index.php">戻る</a></p> </body> </html> blog_create.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); //$post_at = $_POST["post_at"]; echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <input type="submit" action="/kanryou.php" value="送信する"> </main> </body> kanryou.php <body> <header> <h1>PHP</h1> </header> <main> <h2>登録結果!</h2> <?php <pre> <?php try{ $db = new PDO('mysql:dbname=blog_app;host=localhost;charset=utf8','root'); $count = $db->exec('INSERT blog (id ,name,title ,category ,content , post_at=timestamp()'); ( $_POST['id'] ,mb_substr(0,$name),mb_substr(0,$title),mb_substr(0,$category),mb_substr(0,$content), post_at=timestamp()'); echo $count . "件のデータを登録しました!"; } catch(PDOException $e){ echo 'DB接続エラー' . $e->getMessage(); } ?> </pre> </main> </body> echo "送信完了です。ありがとうございました。"; ?> すみません。 どうしても、無反応です。 困っています。 教えてください。 どうぞ宜しくお願い申し上げます。
- mysqlサーバーの接続エラーについて
digikamでmysql接続テストするとエラーとなります。 mysqlのサービスは開始できています。 Database connection test was not successful. Error was: Unknown MySQL server host 'localhost ' (0) QMYSQL: 接続できません
- ベストアンサー
- MySQL
- fujisawa33
- 回答数5
- PDOはインストールしなければならない???
いつも大変お世話になり誠にありがとうございます。 標記の件。 PDOはインストールしなければならないのですか? 入門書ではそのまま使っていたのですが・・・??? php.iniを開くと、該当する事象は載っていないように感じます。 (添付してあります。) すみません。 早くもつまずいてしまいました。 PDOはインストールしなければならないのでしょうか? 確認です。 ご回答のほど宜しくお願い申し上げます。
- 投稿する->投稿完了 SQL挿入!!!
いつも大変お世話になり誠にありがとうございます。 標記の件。 色々と調べましたがコーディングが解りません。 度々申し訳ございません。 どうか教えてください。 添付のボタンを押して、送信完了です。ありがとうございました。と 表示して、それと同時にMySQLに挿入したいです。 本当に申し訳ありません ご回答のほど宜しくお願い申し上げます。 記 blog_create.php <?php session_cache_limiter('public'); session_start(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); //$post_at = $_POST["post_at"]; echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <input type="submit" action=kanryou.php value="送信する"> kanryou.php <?php require_once(blog_create.php); echo name; echo title; echo category; echo content; INSERT blog (name,title,category,content) VALUES(:name,:title,:category,:content); echo "送信完了です。ありがとうございました。"; ?> 以上です。 ご回答のほど宜しくお願い申し上げます。
- MySQL の load data infile
お世話になります。 MySQL のload data infile ... コマンドを使ってCSVファイルをテーブルに転送することをよくやっていますが、このコマンドには現在あるデータはそのままにして、新たにデータを追加するオプションなどはあるのでしょうか? 今までは空のテーブルにデータを転送していただけですが、既にあるデータに上書きすることなく、追加する方法があれば教えていただきたいと思います。 よろしくお願いいたします。
- ベストアンサー
- MySQL
- papashiroSooke
- 回答数1
- SELECT文。何故?エラー???
いつも大変お世話になり誠にありがとうございます。 標記の件。 どうしても、何故?エラーなのか解りません。 エラーメッセージは Warning: Undefined variable $dbc in C:\xampp\htdocs\detail.php on line 21 Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\detail.php:21 Stack trace: #0 {main} thrown in C:\xampp\htdocs\detail.php on line 21 です。 何度も申し訳ございません。 下記にコードを記載します。 どうか教えてください。 アドバイスをお願い申し上げます。 記 <?php $id = $_GET['id']; function dbConnect(){ $dsn = 'mysql:host=localhost;dbname=blog_app;charset=utf8'; $user = 'blog_user'; $pass = 'rhythm0!KT'; try { $dbh = new PDO($dsn, $user, $pass, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => false, ]); } catch (PDOException $e) { echo '接続失敗' . $e->getMessage(); exit(); }; return $dbh; } $dbh = dbConnect(); $stmt = $dbc->prepare('SELECT * FROM blog Where id = :id'); ★21行目 $stmt->bindValue(':id', (int)$id, PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ブログ詳細</title> </head> <body> <h2>ブログ詳細</h2> <h3>タイトル:<?php echo $result['title']?> </h3> <p>投稿日時:<?php echo $result['post_at']?></p> <p>カテゴリー:<?php echo $result['category']?></p> <hr> <p>本文:<?php echo $result['content']?></p> </body> </html>
- MySQLでの効率の良いSQLを教えてください
お世話になります。 以下のようなテーブルがあるとします。 通話記録として、電話番号、通話時間(秒)、通話終了時のタイムスタンプのデータがあります。 call_table id(一意),telno(電話番号),time(通話時間),timestamp(タイムスタンプ) 1,'090xxxxyyyy',61.4,'2022-06-27 16:27:15' 2,'090xxxxyyyy',34.1,'2022-06-27 16:57:45' 3,'090xxxxyyyy',121.0,'2022-06-27 17:05:41' 4,'090xxxxyyyy',150.4,'2022-06-27 17:44:01' 5,'090xxxxyyyy',450.7,'2022-06-27 17:48:20' 6,'090xxxxyyyy',88.1,'2022-06-27 18:10:15' 7,'090xxxxyyyy',364.9,'2022-06-27 19:36:31' 8,'090xxxxyyyy',55.1,'2022-06-27 19:45:12' 検索の条件は、電話番号とタイムスタンプの時間から日にちを指定したいです。 WHERE telno = '090xxxxyyyy' AND time BETWEEN '2022-06-27 00:00:00' AND '2022-06-27 23:59:59' 結果として欲しいのは以下の状態を返して欲しいです。 何時台,回数,最大通話時間,最小通話時間,平均通話時間 0,0,0,0,0 1,0,0,0,0 2,0,0,0,0 3,0,0,0,0 4,0,0,0,0 5,0,0,0,0 6,0,0,0,0 7,0,0,0,0 8,0,0,0,0 9,0,0,0,0 10,0,0,0,0 11,0,0,0,0 12,0,0,0,0 13,0,0,0,0 14,0,0,0,0 15,0,0,0,0 16,2,61.4,34.1,13.65 17,3,450.7,121.0,240.7 18,1,88.1,88.1,88.1 19,2,364.9,55.1,210.0 20,0,0,0,0 21,0,0,0,0 22,0,0,0,0 23,0,0,0,0 また、通話がなかった時間帯(回数が0)の場合、表示がないパターンも参考までに欲しいです。 よろしくお願いします。
- try{}catchでエラー???
いつもお世話になり誠にありがとうございます。 標記の件。 エラーメッセージが Parse error: syntax error, unexpected token "=" in C:\xampp\htdocs\blog_create.php on line 32 stmt = $dbh->prepare($sql); の=が予期しないトークンと書かれています。 どう調べればいいのでしょうか? アドバイスをください。 宜しくお願い申し上げます。 記 <?php require_once('dbc.php'); $blogs = $_POST; if (empty($blogs['title'])) { exit('タイトルを入力してください。'); } if (mb_strlen($blogs['title'])>191) { exit('タイトルは191文字以下にしてください。'); } if (empty($blogs['content'])) { exit('本文を入力してください。'); } if (empty($blogs['category'])) { exit('カテゴリーは必須です。'); } if (empty($blogs['publish_status'])) { exit('公開ステータスは必須です。'); } $sql = 'INSERT INTO blog(title,content,category,publish_status) VALUES (:title, :content, :category, :publish_status)'; $dbh = dbConnect(); try { stmt = $dbh->prepare($sql); stmt->bindValue(':title',$blogs['title'],PDO::PARAM_STR); stmt->bindValue(':content',$blogs['content'],PDO::PARAM_STR); stmt->bindValue(':category',$blogs['category'],PDO::PARAM_INT); stmt->bindValue(':publish_status',$blogs['publish_status'],PDO::PARAM_INT); stmt->execute(); } catch(PDOException $e){ exit($e); } ?>
- phpmyadmin どこが間違いなのでしょうか?
いつもお世話になりありがとうございます。 標記の件。 添付画像の「権限をチェックする」をクリックすると 176にエラーがあると出ました。 どこを調べればいいでしょうか? ご回答のほど宜しくお願い申し上げます。
- MySQLへのデータ保存。
いつもお世話になり誠にありがとうございます。 標記の件。 私の場合、「お名前(ニックネーム)」、「メールアドレス」、 「カテゴリー」、「本文」の4項目を 執筆者様が送信完了した時点でMySQLへデータ保存しなければなりません。 参考になるサイトを紹介してくださらないでしょうか? もしくはアドバイスをください。 宜しくお願い申し上げます。
- MySQLで日本語の文字化け
お世話になります。 LibreOfficeで作成した日本語のデータ(カラオケの曲が記憶されているパスです)をMySQLのテーブルに移植しましたが、プロンプト画面で表示させると文字化けしています。どこが間違っているのかさんざん考えましたがわかりません。 私のしたことは次のようなことです。 ちなみに、使ったコンピューターは英語版のWindows10 64Bitです。MySQLとApatchはXamppー8.03からインストールしたものです。 (1)カラオケの曲のパスを取得するために、曲の入ったハードディスクのディレクトリーを開いて曲を選択し、シフトキーを押しながらマウスを右クリックして"copy as path"を選び、そのパスをLibreOfficeのスプレッドシートに貼り付けました。添付の写真の上のものがその結果です。 (2)このデータをCSV形式で、Japanese(Win932)という文字セットでセーブします。 (3)MariaDBのプロンプトからMySQL(MariaDB)に入り、以下の文字セットをCP932に統一します。 character_set_client character_set_connection character_set_results (4)同じくプロンプトからデータベースの文字セットを設定します。 alter table table-name character set cp932 collate cp932_general_ci (5)いったんMariaDBから出て、chcp 932 を実行しておきます。 (6)MariaDBに戻ってcsvデータをテーブルに移植します。 MariaDB [karaoke]> load data infile "C:/xampp-backup/htdocs/karaoke/KARAOKE-all-path.csv" into table originalpath fields terminated by ',' lines terminated by '\r\n'; (7)そして移植したデータを見たのが添付写真の下のものです。 一貫して文字コードはCP932で設定してきたのに、なぜちゃんと表示されないのでしょうか? 詳しい方、どうか詳しく教えて頂けると有難く思います。
- ベストアンサー
- MySQL
- papashiroSooke
- 回答数5
- phpmyadminの#1142エラーの解決方法
ド素人感丸出しで申し訳ないのですが、 Laravel9でデータベースのテーブルのデータを表示するため phpmyadminを触っているのですが、 .envの「DB_DATABASE」に使いたいDB名を入れて、 コマンドプロンプトで「php artisan make:migration create_members_table」と入力しました。 そして、マイグレーションファイルを下記のように設定しました。 <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateMembersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('members', function (Blueprint $table) { $table->id(); $table->string('name'); //追加 $table->string('email'); //追加 $table->string('tel'); //追加 $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('members'); } } そうしたら、「設定が保存できません #1142 - INSERT command denied to user 'pma'@'localhost' for table 'pma_userconfig'」というエラーが出てきました。 解決方法を調べていたら、下記を入力したことで解決したという情報があったのですが、 ひとくちに「入力する」と言っても、どこに入力して良いのか分かりません。 (そのままコマンドプロンプトに入力するのか、はたまたphpmyadminのどこかに入力するのか) どこに入力すればよいのか知っている方がいらっしゃいましたら、お願い致します。 GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO '********'@'localhost';
- ベストアンサー
- MySQL
- egg_engineer
- 回答数1
- localhost で接続が拒否されました。
現在、学校でデータベースを作る授業をしています。 MAMPを使って使いたいデータベースをインポートし ブラウザに「localhost/○○○」と打ち込みアクセスしたら 「localhost で接続が拒否されました。」と出ました。 それまでは、ちゃんと表示されてたし見られていました。 その後、先生に聞いてみるも複雑すぎると言われなんも助けてくれず とはいえ課題をしなきゃいけないので一人で悪戦苦闘してるところです。 MYSQLは稼働してるみたいです。 (phpMyadminにアクセスできるので…) キャッシュをクリアしたからなのでしょうか? パソコンはMac 10.15.7で設定からプロキシはチェックは外れており、 ファイアーフォールは使ってませんでした。 ググったらサーバーに接続されていないのでは?といった解答も見つけたのですが、MYSQLがサーバーではないのでしょうか…? ウェブサーバー はもともと使ってません。(でも見れてました) 使いたいデーターベースをMAMPにあるhtdocsにコピーしてあるので ローカルでしか逆に見られないのではと思うのですが ローカルですら見られません。。。! 思い当たるところがなさすぎて、本当に困ってます。 どなたか教えていただけないでしょうか。 よろしくお願いします。
- ベストアンサー
- MySQL
- MRC_MRO1989
- 回答数1