質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

6回答

22778閲覧

エラーの指示が分からない

a-_.

総合スコア133

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/08/02 07:34

編集2016/09/06 02:19

下記コードでブラウザ表示したら、以下エラー文が出力され、「パラメーターが足りない」と書いてあるのは把握したんですが、今回のコードで言うパラメーターの意味が分からず解決方法が見つかりません

エラーが指している箇所は、insert文とselect文とwhile文の行です

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\XAMPP\htdocs\XXX.php on line 18
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\XAMPP\htdocs\XXX.php on line 28
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\XAMPP\htdocs\XXX.php on line 30

PHP

1 if (isset($_POST['name'], $_POST['comment'])) { 2 $name = $_POST['name']; 3 $comment = $_POST['comment']; 4 $time = date("y-m-d h:i:s"); 5 6 $link = mysqli_connect($host, $user, $password, $dbname) or die("NG"); 7 8 mysqli_select_db($link, "テーブル名"); 9 10 $query = mysqli_query("INSERT INTO カラム名 (name, comment, time) VALUES ('$name', '$comment', '$time')"); 11 12 mysqli_close($link); 13 }; 14?> 15<?php 16 $link = mysqli_connect($host, $user, $password, $dbname) or die("NG"); 17 18 mysqli_select_db($link, "データベース名"); 19 20 $result = mysqli_query("SELECT * FROM カラム名 ORDER BY time DESC"); 21 22 while(($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) !== NULL) { 23?> 24 25 <table> 26 <tr> 27 <td>名前: 28 <?php print "{$row['名前']}<br>" ?> 29 </td> 30 </tr> 31 <tr> 32 <td>内容: 33 <?php print "{$row['内容']}<br>" ?> 34 </td> 35 </tr> 36 </table> 37 38<?php 39 }; 40 41 mysqli_close($link); 42?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

Warning: mysqli_query() expects at least 2 parameters, 1 given

mysqli_query()

イメージ説明

イメージ説明

php

1$query = mysqli_query("INSERT INTO カラム名 (name, comment, time) VALUES ('$name', '$comment', '$time')");

↑ 第一引数に与えるパラメータが間違っています。
他も同様にマニュアルを確認ください。

投稿2016/08/02 07:46

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

パラメータと言うのはfunctionの引数の事です。
今回のエラーは「最低でも2つの引数を指定しないとダメだよ」という事ですね。
この程度の英文は読めるようにしないと大変ですし、Google翻訳などでも大体の意味は分かると思いますよ。

mysqli_query()mysqli_fetch_array()のリファレンスを確認してください。
どちらもDBへの接続リソースと、selectの結果セットの指定が必要です。

投稿2016/08/02 07:52

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

それ以前にこれにSQLインジェクションの脆弱性ありますけど

投稿2016/08/02 07:40

stmkza

総合スコア478

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

php

1 $query = mysqli_query("INSERT INTO カラム名 (name, comment, time) VALUES ('$name', '$comment', '$time')");

この部分、カラム名ではなくテーブル名では?

mysqli_query単体ではどのデータベースかを記憶していないようなので、第一引数にデータベースリンクを貼る必要があります。
http://manual.xwd.jp/function.mysqli-query.html

投稿2016/08/02 07:46

編集2016/08/02 07:47
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

php

1// NG 2$result = mysqli_query("SELECT * FROM カラム名 ORDER BY time DESC"); 3 4//OK 5$result = mysqli_query($link, "SELECT * FROM カラム名 ORDER BY time DESC");

です

投稿2016/08/02 07:43

stmkza

総合スコア478

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

INSERT文のときにはカラム名がname, comment, timeのようにアルファベットになっているのに、
SELECT文のあとにレコードを取り出す時は{$row['名前']}のように日本語になっていますが、
そこではないでしょうか?
テーブル定義はどうなっていますか?

投稿2016/08/02 07:41

jm1156

総合スコア866

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問