以前質問をさせて頂きましたが、現状もわかっていない状況です。
Fatal error: Call to undefined method MDB2_Error::execute()register_check.php on line 39

ご指摘があったDNS→DSNに変更しましたが変わらない状況です。

function.php
<?php
define("DNS","mysql://root@localhost/mihon?charset=utf8");
define("SERVER", "127.0.0.1");
define("SENDER_EMAIL", "root@localhost");
define("STRETCH_COUNT", 1000);



register_check.php
//DB接続
$db = MDB2::connect(DNS);
if (PEAR::isError($db)) {
die($db->getMessage());
}
//プレースホルダで SQL 作成
$sql = "SELECT COUNT(*) AS CNT FROM USERS WHERE ID = ? ;";
//var_dump($sql);
//パラメーターの型を指定
$stmt = $db->prepare($sql, array('text'));
//パラメーターを渡して SQL 実行
$rs = $stmt->execute(array($id));   ←ココがエラー
//var_dump($rs);
while ($row = $rs->fetchRow(MDB2_FETCHMODE_ASSOC)) {
$count = $row['cnt'];
}
$db->disconnect()
?>

var_dumpで確認すると以下の文が出てきます
object(MDB2_Error)[3]
public 'error_message_prefix' => string '' (length=0)
public 'mode' => int 1
public 'level' => int 1024
public 'code' => int -18
public 'message' => string 'MDB2 Error: no such table' (length=25)
public 'userinfo' => string '_doQuery: [Error message: Could not execute statement]
[Last executed query: PREPARE MDB2_STATEMENT_mysql_b347dce676c5b552469498333641d692 FROM 'SELECT COUNT(*) AS CNT FROM USERS WHERE ID = ? ;']
[Native code: 1146]
[Native message: Table 'mihon.users' doesn't exist]

参考サイトは以下です。このサイトを見て作成しています。
http://www.websec-room.com/2015/03/15/2153

データベース名はmihonに変更しています。
どうぞよろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>[Native message: Unknown column 'RESISTER_TIME' in 'field list']


テーブルのレコード「RESISTER_TIME」(一番最後のカラム)が見つからないと出ています。レコードを確認してみてください。
    • good
    • 0
この回答へのお礼

register_timeと記載しており、初歩的なミスでした。
助かりました。ありがとうございます。

お礼日時:2016/01/23 23:02

>[Native message: Table 'mihon.users' doesn't exist]


テーブル'mihon.users'が存在しない。
と出ています。
「テーブル設計」にある、「USERS」テーブルはMySQLに作成されていますか?
    • good
    • 0
この回答へのお礼

確認したら、USERS→USERになっていました。ありがとうございます。
ただ、次のファイルでも同じエラーが出ていますが、ご教授お願いします。
Fatal error: Call to undefined method MDB2_Error::execute() in mihonlog\register_submit.php on line 51

var_dumpで詳細確認。
object(MDB2_Error)[3]
public 'error_message_prefix' => string '' (length=0)
public 'mode' => int 1
public 'level' => int 1024
public 'code' => int -19
public 'message' => string 'MDB2 Error: no such field' (length=25)
public 'userinfo' => string '_doQuery: [Error message: Could not execute statement]
[Last executed query: PREPARE MDB2_STATEMENT_mysql_8c6b372befe56978e11534d1ed0fffdf FROM 'INSERT INTO USERS (ID,SALT,PASSWORD,MAILADDRESS,TEMP_PASS,LAST_CHANGE_PASS_TIME,RESISTER_TIME) VALUES (?,?,?,?,?,?,?);']
[Native code: 1054]
[Native message: Unknown column 'RESISTER_TIME' in 'field list']

お礼日時:2016/01/23 12:26

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qプログラムの中の public $name = "姓名"; public $age = 20;

以下のプログラムの中に
public $name = "姓名";
public $age = 20;
 があります。なくても表示自体に影響はないのですが、何の目的であるのでしょうか!?
以下問題のプログラムです。 よろしくお願いいたします
--------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>P251 Sample8-2 複数のオプションを作成する</title>
</head>
<body>

<?php
#$は変数の宣言
$pr1 = new Person;
$pr1->name = "鈴木";
$pr1->age = 56;

$pr2 = new Person;
$pr2->name = "佐藤";
$pr2->age = 38;

?>
<table border="2">
<tr bgcolor="#AAAAAA">
<th>名前</th>
<th>年齢</th>
</tr>

<?php

print "<tr><td>";#特に<tr>がなくてもOK
print $pr1->getnam();
print "</td><td>";#特に</td>がなくてもOKでした。
print $pr1->getage();
print "</td></tr>";#特になくても表の2行目表自体は影響はなかった。

print "<tr><td>";
print $pr2->getnam();
print "</td><td>";
print $pr2->getage();
print "</td></tr>";

?>

</table>
<?php

class Person

{
public $name = "姓名";
public $age = 20;

function getnam(){return $this->name;}
function getage(){return$this->age;}
}

?>

</body>
</html>

以下のプログラムの中に
public $name = "姓名";
public $age = 20;
 があります。なくても表示自体に影響はないのですが、何の目的であるのでしょうか!?
以下問題のプログラムです。 よろしくお願いいたします
--------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>P251 Sample8-2 複数のオプションを作成する</title>
</head>
<body>

<?php
#$は変数の宣言
$pr1 = new Person;
$pr1->name = "鈴木";
$pr1->age = 56;

...続きを読む

Aベストアンサー

変数の置き場を、メモリー上に確保するためです。
前者は文字として、後者は数値として。

Q「$errors = array();//エラーを格納する$errors変数を初期化する」

参考URL:http://afurieitohannei.la.coocan.jp/aaaphp.htm
以上のURL先にあります、 
$errors = array();//エラーを格納する$errors変数を初期化する
のですが!$errors = aaa();に変えてもプログラムに影響はありますか?
まだ動作確認が取れていないので試すことができません。

 よろしくお願いします。

Aベストアンサー

>$errors = aaa();に変えてもプログラムに影響はありますか?

影響がないとは言えない。
ただしaaa()が「return array();」的な空配列を返しているなら問題ない。
いずれにしろ書き方の問題というより、初期化とは何かを理解すれば自明です。

Qpublic static $count = 0; とあります。これは何のためにあるのですか!?

以下プログラムに
public static $count = 0;
とあります。これは何のためにあるのですか!?
よろしくお願いいたします。
-----------------------------------------------------------
<body>

<?php

$pr1 = new Person("鈴木",56);
$pr2 = new Person("佐藤",38);
?>

<table border="2">
<tr bgcolor="#AAAAAA">
<th>名前</th>
<th>年齢</th>
</tr>

<?php

print "<tr><td>";
print $pr1->getname();
print "</td><td>";
print $pr1->getage();
print "</td></tr>";

print "<tr><td>";
print $pr2->getname();
print "</td><td>";
print $pr2->getage();
print "</td></tr>";

?>
</table>

<?php

print "<hr/>";
print "合計人数:";
print Person::$count;

?>

<?php

class Person
{

private $name ="姓名";
private $age =20;
public static $count = 0;

public function __construct($nm,$ag)

{
person::$count++;


$this->name = $nm;
if($ag>=20 && $ag<=60){
$this->age = $ag;
}
else
$this->age = -1;
}
public function getname(){return $this->name;}
public function getage(){return $this->age;}
}

?>

</body>

以下プログラムに
public static $count = 0;
とあります。これは何のためにあるのですか!?
よろしくお願いいたします。
-----------------------------------------------------------
<body>

<?php

$pr1 = new Person("鈴木",56);
$pr2 = new Person("佐藤",38);
?>

<table border="2">
<tr bgcolor="#AAAAAA">
<th>名前</th>
<th>年齢</th>
</tr>

<?php

print "<tr><td>";
print $pr1->getname();
print "</td><td>";
print $pr1->getage();
print "</td></tr>";

print "<t...続きを読む

Aベストアンサー

最初に質問を見かけてからコレでかれこれ3年が経過しているのか・・・。
 歳月が流れるのは早いものです。

>これは何のためにあるのですか!?
 変数の初期化・・・と言えば初期化。
 基本的には変数を宣言するときはその変数の中身を適切な数値で初期化されることを薦めます。


 今回の$count = 0は、クラスの間で参照できるようにpublic(公開)にして静的に値を持たせる目的でstaticにしているようですね。

 この変数$countは前後の関係から考えると人数を数えているようです。

 オブジェクト指向プログラミングの話のはずなのに、本筋とは関係の無い部分での質問のようです。

Qprint "{$data[$i][$j]}";の $dataと「直接関係」がある

<!DOCTYPE html>
<html>
<head>
<title>P185 Sample6-15▸ 多次元配列</title>
</head>
<body>

<?php

$data[0][0] = "東京";
$data[0][1] = 32;//$data[0][●]に東京のデータを格納します。
$data[0][2] = 25;
$data[1][0] = "名古屋";
$data[1][1] = 28;//$data[1][●]に名古屋のデータを格納します。
$data[1][2] = 21;
$data[2][0] = "大阪";
$data[2][1] = 27;//$data[2][●]に大阪のデータを格納します。
$data[2][2] = 20;
$data[3][0] = "京都";
$data[3][1] = 26;//$data[3][●]に京都のデータを格納します。
$data[3][2] = 19;
$data[4][0] = "福岡";
$data[4][1] = 27;//$data[4][●]に福岡のデータを格納します。
$data[4][2] = 22;

?>

<table border="2">
<tr bgcolor="#AAAAAA">
<th>都市名</th>
<th>最高気温</th>
<th>最低気温</th>
</tr>

<?php

for($i=0; $i<count($data); $i++){
print "<tr>";
for($j=0; $j<count($data[0]); $j++){
print "<td>{$data[$i][$j]}</td>";//配列の要素を出力する。
}
print "</tr>\n";
}

?>

</table>

</body>
</html>
以上ですが・・・だんだん難しくなってきました!
 さて
  print "<td>{$data[$i][$j]}</td>";の $dataと「直接関係」があるところは
 1) for($j=0; $j<count($data[0]); $j++){  
 2)$data[0][0] = "東京";~$data[4][2] = 22;
  の1)2)のどちらと「直接関係」があるのでしょうか?
 以上よろしくお願いいたします。

<!DOCTYPE html>
<html>
<head>
<title>P185 Sample6-15▸ 多次元配列</title>
</head>
<body>

<?php

$data[0][0] = "東京";
$data[0][1] = 32;//$data[0][●]に東京のデータを格納します。
$data[0][2] = 25;
$data[1][0] = "名古屋";
$data[1][1] = 28;//$data[1][●]に名古屋のデータを格納します。
$data[1][2] = 21;
$data[2][0] = "大阪";
$data[2][1] = 27;//$data[2][●]に大阪のデータを格納します。
$data[2][2] = 20;
$data[3][0] = "京都";
$data[3][1] = 26;//$data[3][●]に京都の...続きを読む

Aベストアンサー

> の1)2)のどちらと「直接関係」があるのでしょうか?

No.1さんと同じく質問の意味が理解できません。
わかり易く補足いただいた方が良いかと思います。



”の1)2)のどちらと「関係」があるのでしょうか?” というご質問であれば

”どちらとも関係あります” という回答になります。

Qforeach($stock as $name => $value){ の$value)で値用の変数

<!DOCTYPE html>
<html>
<head>
<title>P161 Sample6-7 array()を使う</title>
</head>
<body>

<?php

$stock = array("みかん"=>80,"いちご"=>60,"りんご"=>22, "もも"=>50,"くり"=>57);

?>

<table border="2">
<tr bgcolor="#AAAAAA">
<th>番号</th>
<th>個数</th>
</tr>

<?php

foreach($stock as $name => $value){
print "<tr><td>{$name}</td><td>{$value}個</td></tr>\n";
}

?>

</table>

</body>
</html>
以上の foreach($stock as $name => $value){ 
 のforeach文は特殊な繰り返し文で$stockは”変数名”・$name"はキー(引出し)用の変数・
 ここまでは何となく意味がわかります。最後のは$valueは”値用の変数”・・とあります。
 ここで言う、”値用の変数”の値とは何のことなのでしょうか? 
 よろしくお願いいたします。

<!DOCTYPE html>
<html>
<head>
<title>P161 Sample6-7 array()を使う</title>
</head>
<body>

<?php

$stock = array("みかん"=>80,"いちご"=>60,"りんご"=>22, "もも"=>50,"くり"=>57);

?>

<table border="2">
<tr bgcolor="#AAAAAA">
<th>番号</th>
<th>個数</th>
</tr>

<?php

foreach($stock as $name => $value){
print "<tr><td>{$name}</td><td>{$value}個</td></tr>\n";
}

?>

</table>

</body>
</html>
以上の foreach($stock as $name => $value){ 
 のfor...続きを読む

Aベストアンサー

$name には、"みかん"、"いちご" など。$valueには、80や60が入ります。

> $stock = array("みかん"=>80,"いちご"=>60,"りんご"=>22, "もも"=>50,"くり"=>57);

の => という記号と対応しているでしょ?


人気Q&Aランキング

おすすめ情報