• 締切済み

connectを使ったSQL実行でエラー

以下のphpでsql文を実行したのですが、エラーになってしまいます。 sql文が間違っているのでしょうか?phpmyadminで作成したsqlを貼り付けたのですが・・・ どなたか回答お願いします。 header("Content-type: text/html; charset=shift-jis"); #mysql_connectを使う #mysqliの定義 $mysqli = new mysqli('localhost', 'root', "", "******"); $link = mysql_connect('localhost', 'root', "", "*********"); if (!$link) { die("1:接続失敗です。".mysql_error()); }else{ print("1:接続成功!<BR>"); } // 文字化け防止 /* 文字セットを utf8 に変更します */ if (!$mysqli->set_charset("utf8")) { printf("2:文字コードのセットに失敗しました。: %s\n", $mysqli->error); } else { printf("2:文字コードセット-> %s\n", $mysqli->character_set_name()); } printf("<BR>"); $query = file_get_contents("./sql/create.sql"); printf("3:クエリ->%s",$query);#ちゃんと読み込まれているかクエリ確認 $stmt = $link->prepare($query); $stmt->execute(); // 変数のバインド $stmt->bind_result($name,$email); // 表示 while ($stmt->fetch()) { echo $name; echo $email; } //切断 $mysqli->close(); ------------------------------------------------- :実行結果 1:接続成功! 2:文字コードセット-> utf8 3:クエリ->SELECT * FROM test_table WHERE 1 Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdoc\saaaaa\aaaaa.html on line 41

みんなの回答

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

> ("./sql/create.sql"); SQL文の中身を開示してください。 パラメータ(where条件?)を必要としているのに、処理できてないように思います。

kmwrod
質問者

お礼

すみません、自己解決しました。 ありがとうございました。

kmwrod
質問者

補足

SELECT * FROM `test_table` WHERE 1 としました。

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

エラーメッセージ末尾のline41はどの行のこと?

kmwrod
質問者

お礼

すみません、自己解決しました。 ありがとうございました。

kmwrod
質問者

補足

$stmt = $link->prepare($query); の箇所だと思います。

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

>3:クエリ->SELECT * FROM test_table WHERE 1 この文章はおかしいですね。 WHERE 1 という条件はない。

kmwrod
質問者

お礼

条件を消してやってみましたが同じでした。 いろいろ試しているのですがうまくいかないです。 もう少し調べてみます。

kmwrod
質問者

補足

phpmyadminにて実行した結果をそのまま貼り付けました。SQL文が間違っているのですね? 調べて見ます。

関連するQ&A