0

基本的な質問でごめんなさい。私はここStackoverflowで他の答えを見てきましたが、ここに行きます:

データをmysqlDBに投稿する簡単なフォームがあります。

<form id="theatre" method="post" action="{$HTTP_HOST}admin/addTheatre.php"     autocomplete="on">
    <input type="hidden" name="id">
    <fieldset>
        <label>Please fill in the relevent fields.</label>
        <section>
            <label for="year">Year</label>
            <div>                   
                <select name="year" id="year">
                    <optgroup label="Year">
                            <option>2013</option>
                            <option>2012</option>
                            <option>2011</option>
                            <option>2010</option>
                            <option>2009</option>
                            <option>2008</option>
                            <option>2007</option>
                            <option>2006</option>
                    </optgroup>
                </select>
            </div>
        </section>
        <section><label for="part">Part</label>
            <div>
                <input type="text" id="part" name="part" title="A Tooltip">
            </div>
        </section>
        <section><label for="name">Name</label>
            <div>
                <input type="text" id="name" name="name" title="A Tooltip">
            </div>
        </section>
        <section><label for="theatre">Theatre</label>
            <div>
                <input type="text" id="theatre" name="theatre" title="A Tooltip">
            </div>
        </section>
        <section><label for="director">Director</label>
            <div>
                <input type="text" id="director" name="director" title="A Tooltip">
            </div>
        </section>
        <section>
            <div>
                <button name="submit" class="submit" type="submit">Submit</button>
            </div>
        </section>
    </fieldset>
</form>

そして、addTheatre.phpファイルに私は持っています:

if(isset($_POST['submit'])){
    hcDB::getInstance()->insert_theatre($_POST['year'], $_POST['part'], $_POST['name'], $_POST['theatre'], $_POST['director']);
}

次の関数を実行する必要があります:

function insert_theatre($year, $part, $name, $theatre, $director) {
    $year = $this->real_escape_string($year);
    $part = $this->real_escape_string($part);
    $name = $this->real_escape_string($name);
    $theatre = $this->real_escape_string($theatre);
    $director = $this->real_escape_string($director);
    $this->query("INSERT INTO theatre (`year`, `part`, `name`, `theatre`, `director`)" .
            " VALUES (" . $year . "' , '" . $part . "' , '" . $name . "' , '" . $theatre . "' , '" . $director . "')");
    }

私の知る限り、何も提出されていません。おそらくお分かりのように、私はこれに不慣れなので、無能であることをお詫びします!

助けてくれてありがとう。

4

3 に答える 3

0

あなたが言ったように、何も提出されていないので、おそらくあなたのボタンには価値がなく、あなたはやろうとしています

if(isset($_POST['submit'])){
//other stuff
}

それは最終的には誤りです。

だからあなたのボタンを変えてみてください

<button name="submit" class="submit" type="submit">Submit</button>

<input type="submit" class="submit" name="submit" value="Submit"/>
于 2012-10-13T17:32:11.883 に答える
0

の戻り値を確認しquery、呼び出しerrorInfoて、意味のあるメッセージが表示されるかどうかを確認してください。

おそらくSQLの形式が正しくないことを示しているはずです。

$this->query("INSERT INTO theatre (`year`, `part`, `name`, `theatre`, `director`)" .
        " VALUES (" . $year . "' , '" . $part . "' , '" . $name . "' , '" . $theatre . "' , '" . $director . "')");
}

AFAICTは(余分な一重引用符)VALUES ("に変更する必要があります。VALUES('"

于 2012-10-13T17:18:47.113 に答える
0

クエリにタイプミスがあり、エラー処理がないため、mysqlが提供するエラーメッセージは表示されません。

" VALUES ('" . $year . "' , '"
          ^--- missing quote
于 2012-10-13T17:19:00.297 に答える