クエリ文のエラー改善方法を教えてください

このQ&Aのポイント
  • 自分で書いたPHPのコードがうまく出力されず、エラーが改善できません。
  • サーバー名やデータベース名、ユーザー名、パスワードなどの設定に問題がある可能性があります。
  • PHPコードのSELECT文やLIMIT文に誤りがある可能性も考えられます。
回答を見る
  • ベストアンサー

【添削願】クエリ文、エラーが改善できません。

こちらのPHPがうまく出力されません。 自分なりに書いてますが なかなか間違いを見つけられず添削お願いできると ありがたいです。 最初の4行のサーバー名はダミーです $sv = "mysql.xxx.jp"; $dbname = "bbb"; $user = "bbb"; $pass = "aaa"; $link = mysqli_connect($sv, $user, $pass,$dbname); $editpagename ="main"; $query = "SELECT * FROM $editpagename ORDER BY id DESC LIMIT 0 , 50"; $result = mysqli_query($link, $query); var_dump($result); どのようなことが考えられるでしょうか? よろしくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数11

質問者が選んだベストアンサー

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> $query = "SELECT * FROM $editpagename ORDER BY id DESC LIMIT 0 , 50"; $query = "SELECT * FROM " . $editpagename . " ORDER BY id DESC LIMIT 0 , 50";

omezhru
質問者

お礼

ありがとうございました。 うまくいきました。

関連するQ&A

  • 【添削願】PHP5,4手続型チェックお願いします。

    初歩的で恐縮ですが PHP5,4手続き型で書く場合についてです。 うまくMYSQLにインサートの文章がかけず or die("データ追加エラー");のエラーの表示しかされず右往左往しています。 <?php $sv = "mysql.xxx.jp"; $dbname = "bbb"; $user = "bbb"; $pass = "aaa"; $txt="あああ"; $ip="1234"; $ua="mac"; //接続 $link = mysqli_connect($sv, $user, $pass,$dbname); //クエリ文 $query = "INSERT INTO data1 (txt,ip,ua) VALUES('$txt','$ip','$ua')"; //書込不可ならエラー表示 $result = mysqli_query($link, $query) or die("データ追加エラー"); ?> txt,ip,uaというカラムは作ってあります。そこに各変数のデータを入れたいのです。 ご指摘、添削いただけますとありがたいです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • mysqliが使えない?ようなのですが・・

    http://okwave.jp/qa/q8229305.html の続きなのですが・・・ 散々調べた結果、mysqliが使えないことが原因だと思いました。 しかし、バージョンも大丈夫ですし、よくわからないです・・ とても困りました。 $url = "localhost"; $user = "aaa"; $pass = "bbb"; $db = "ccc"; echo "ppp"; //もう1度mysqli $mysqli = new mysqli($url, $user, $pass, $db); if (mysqli_connect_error()) { die('接続失敗です。'.mysqli_connect_error()); }

    • ベストアンサー
    • PHP
  • PHPとMySQLとの連携エラー

    環境はWin 8.1, Apache 24, PHP 5.5.6, MySQL 5.5です。 My SQLとの連携で、以下のエラーが出てしまいました。 ---------------------------------------------エラー文ここから Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\Program Files\Apache\Apache24\htdocs\sample\省略.php on line 11 データベースの選択に失敗しました。 ---------------------------------------------エラー文ここまで ---------------------------------------------コードここから <?php $url = "省略"; $user = "省略"; $pass = "省略"; $db = "省略"; // mysqliへ接続 $link = mysqli_connect($url,$user,$pass) or die("mysqliへの接続に失敗しました。"); // データベースを選択する $sdb = mysqli_select_db($link, $db) or die("データベースの選択に失敗しました。"); // クエリを送信する $sql = "SELECT * FROM省略"; $result = mysqli_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql); //結果セットの行数を取得する $rows = mysqli_num_rows($result); //結果保持用メモリを開放する mysqli_free_result($result); // mysqliへの接続を閉じる mysqli_close($link) or die("mysqli切断に失敗しました。"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS"> <title>全件表示</title> </head> <body> 接続ID:<?= $link ?><br /> 選択の成否:<?= $sdb ?><br /> 結果ID:<?= $result ?><br /> 行数:<?= $rows ?><br /> </body> </html> ---------------------------------------------コードここまで 11行目はコメント文「データベースを選択する」です。 ただ、実際の間違いはその下ですよね? ネットで検索してみたつもりですが、良い情報はありませんでした。 直訳を考えると、mysqli_select_db($link の部分がmysqliであるべきなんですか? 少なくともmy SQLへの接続には成功していると取っていいのでしょうか?

    • ベストアンサー
    • PHP
  • mysql_queryが動かなくて困っています

    こんにちは、Web上のphpのページを見ながら学習している者です。 早速躓いてしまっていまして、どなたか添削していただければと思います。 下のようなスクリプトを組んだのですが、接続は成功するのですが 問い合わせのほうがうまくいかず、クエリの送信に失敗しました。になります mysql_query文の各パラメーターはphpMyAdminの画面からカットアンドペーストしたもので、タイプミスや大文字小文字のミスは無いはずなのですが… どうかよろしくお願いします >><?php >>   $url = "11111.jp"; >>   $user = "+++++"; >>   $pass = "*****"; >>   $db = "dbname"; >>   // データベースへ接続("サーバ名","ユーザ名","接続用パスワード") >>   $link = mysql_connect($url,$user,$pass)or die("MySQLへの接続に失敗しました。"); >>   $sdb = mysql_select_db($db)or die("データベースの選択に失敗しました。"); >>   // 問合せ処理 >>   $query = "select 名称 from tablename where ID=1"; >>   $result = mysql_query($query)or die("クエリの送信に失敗しました。<br />SQL:".$sql);

    • ベストアンサー
    • PHP
  • mysqli_stmtエラーの修正方法がわからない

    以下のエラーがわかりません。 Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in C:\xampp\htdocs\job_site4\search_criteria.php on line 62 Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement in C:\xampp\htdocs\job_site4\search_criteria.php on line 68 Warning: printf(): Too few arguments in C:\xampp\htdocs\job_site4\search_criteria.php on line 73 というエラーになりました。 以下ソースです。 /* 変数定義関連 */ /* mysqliの定義 */ global $mysqli; $mysqli = new mysqli('localhost', 'root', "", "db"); //$link = mysqli_connect('localhost', 'root', "", "db"); /* 接続状況をチェックします */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } print("<BR>"); /* 現在のデフォルトデータベース名を返します */ if ($result = $mysqli->query("SELECT DATABASE()")) { $row = $result->fetch_row(); printf("Default database is %s.\n", $row[0]); $result->close(); } print("<BR>"); /* データベースを a_db に変更します */ $mysqli->select_db("a_db"); /* 現在のデフォルトデータベース名を返します */ if ($result = $mysqli->query("SELECT DATABASE()")) { $row = $result->fetch_row(); printf("Default database is %s.\n", $row[0]); $result->close(); } // データベースのdump echo "<pre>";var_dump($mysqli);echo "</pre>"; /* プリペアドステートメントを作成します */ $sql = " SELECT * FROM `test_table` WHERE 1 "; // バインドデータ設定 $key = 1; if($stmt = $mysqli->prepare($sql)) { /* マーカにパラメータをバインドします */ $stmt->bind_param("i",$key); // バインドする変数に設定して送る /* クエリを実行します */ $stmt->execute(); /* 結果変数をバインドします */ $stmt->bind_result($col1,$col2); // バインドする変数分設定 /* 値を取得します */ $stmt->fetch(); printf("%s : %s\n", $col1.$col2); /* ステートメントを閉じます */ $stmt->close(); } // 切断 $mysqli->close(); よろしくお願いします。

    • ベストアンサー
    • PHP
  • 実行結果に連番を振る方法

    こんにちは。 以下を実行すると、ブラウザに結果x, 結果x, 結果x・・・と表示されます。 xの部分を1, 2, 3・・・とさせたいのですが、うまくできません。 ご教示頂けませんか? 宜しくお願い致します。 <?php //データベース接続 $server = "127.0.0.1"; $userName = "root"; $password = "password"; $dbName = "tweet01"; $mysqli = new mysqli($server, $userName, $password,$dbName); if ($mysqli->connect_error){ echo $mysqli->connect_error; exit(); }else{ $mysqli->set_charset("utf-8"); } $sql = "SELECT * FROM tweet_tbl"; $result = $mysqli -> query($sql); //クエリー失敗 if(!$result) { echo $mysqli->error; exit(); } //レコード件数 $row_count = $result->num_rows; //連想配列で取得 while($row = $result->fetch_array(MYSQLI_ASSOC)){ $rows[] = $row; } //結果セットを解放 $result->free(); // データベース切断 $mysqli->close(); ?> <!DOCTYPE html> <html> <body> <table border='1'> <tr><td>結果</td></tr> <?php foreach($rows as $row){ ?> <tr> <td><a href='wxyz.php?id=$row['id']; ?'>結果x</a></td> </tr> <?php } ?> </table> </body> </html>

    • ベストアンサー
    • PHP
  • mysqliについて

    PHP初心者です PHP 5.2.5 MySQL 5.1.22 レンタルサーバーのphpのバージョンが php5.2.5ではpdoがバグで使えないらしいのでmysqliを使おうとしています。PHP 5.2.5でもmysqliはバグありますか? mysqliでMYSQLに接続するにはどうすればいいのでしょうか? いままではこんな感じでしたがmysqliにするとどんなコードになるのでしょうか? $link=mysql_connect('localhost', 'user', 'pass')or die(mysql_error()); mysql_select_db(user'); mysql_query('SET NAMES UTF8'); $start=1; $hyouji=10; $recordSet = mysql_query(sprintf('SELECT * FROM hoge2 ORDER BY id LIMIT %d, %d' , ',$start,$hyouji)); <?php while ($table = mysql_fetch_assoc($recordSet)) { ?> <tr> <td><?php print($table['id']); ?></td> <td><?php print($table['name']); ?></td> </tr> <?php } ?>

    • ベストアンサー
    • PHP
  • テストdataの作成について

    プログラム初心者です テスト用にmysqlのテストdataをつくりたいです PHPでダミーDATA10万件をinsertする方法を教えてください カラムはuser_id gif_id tag の三つです user_id gif_idはなにも記入しなくてもいいです。(数字が入る予定です) tagはあ~お、か~こまで1文字をランダムに値を変化させながら入れられますか?(無理なら同じタグでいいです) XAMPP(ローカル)で作るので負荷かかってもかまいません mysqli_query($link,sprintf('INSERT INTO tag(user_id,gif_id,tag) VALUES(%d,%d,"%s"),(%d,%d,"%s","%s")', mysqli_real_escape_string($link,$id), mysqli_real_escape_string($link,$gif_id), mysqli_real_escape_string($link,$tag), mysqli_real_escape_string($link,$id), mysqli_real_escape_string($link,$gif_id), mysqli_real_escape_string($link,$tag2) )); よろしくお願いします

    • ベストアンサー
    • PHP
  • CGIとMysqlで複数のupdate文を実行したい

    CGI(Perl5.8*)のDBIモジュールでのMysqlの質問です。 //////////////////////////////////////////// $sql = " update `postageFee` set `aaa`=1,`bbb`=2 where `id`=1; update `postageFee` set `aaa`=3,`bbb`=4 where `id`=5; "; $result = $db->prepare("$sql"); $result->execute; $result->finish; //////////////////////////////////////////// 上記のように複数行にわたるupdate文を一回のQueryで処理させたいのです。 上記のような方法で一回で処理はできないのでしょうか?どうしてもうまくいきません。 1行1行クエリーしないといけないのでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • PHPでPostgreSQLのテーブルを表示できない

    phpPgAdminでテーブルを作成し、 WEBからアクセスしようとして以下のPHPファイル(1)を作成しました。 すると以下のエラーメッセージ(1)が出て テーブルが表示されませんでした。 そこでPHPファイルを(2)のように変更したら エラーメッセージ(2)が出てテーブルが表示されませんでした。 ********************************************************** エラーメッセージ(1) permission denied for relation テーブル名 ********************************************************** PHPのファイル(1) ********************************************************** <?php $sv = "ホスト名"; $dbname = "DB名"; $user = "ユーザ名"; $pass = "パスワード"; $conn = pg_connect("host=$sv dbname=$dbname user=$user password=$pass") or die("接続エラー"); $sql = "select * from テーブル2;"; ********************************************************** エラーメッセージ(2) parse error, unexpected T_STRING ********************************************************** 変更後のPHPのファイル(2) ********************************************************** <?php $sv = "ホスト名"; $dbname = "DB名"; $user = "ユーザ名"; $pass = "パスワード"; ↓↓↓↓ここを加えた↓↓↓↓↓ GRANT ALL ON tbl_pv4 TO ユーザ名; GRANT ALL ON tbl_pv4 TO nobody; $conn = pg_connect("host=$sv dbname=$dbname user=$user password=$pass") or die("接続エラー"); $sql = "select * from テーブル2;"; ********************************************************** ちなみにテーブル2の代わりに前任者が作成したテーブルに変更すると問題なく表示されます。 宜しくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう