アプリ版:「スタンプのみでお礼する」機能のリリースについて

以前質問をさせて頂きましたが、現状もわかっていない状況です。
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に変更しています。
どうぞよろしくお願い致します。

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が見つからない時は、教えて!gooで質問しましょう!