0

mysql コードを PDO に書き直しましたが、うまくいきません。私はデバッグを行ってきましたが、正しく動作していないようです。それは私にとってすべて新しいことですが、データベースに接続し、vardump のデータベースから読み取りますが、テキストエリアに投稿したり、エコーしたりしません。言うまでもなく、データベースへの書き込み... $result 変数が奇妙なことをしていると直感しましたが、私が知る限り、すべてを再確認しました。

<html>
    <head>
    <title>Milan CMS</title>
    </head>

<body>

    <?php
        $host= "";
        $dbname= "";
        $username= "";
        $password= "";
        $dbh = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
        $sth = $dbh->prepare("SELECT * FROM milan WHERE tag='trainingen'");
        $sth->execute();
        $result = $sth->fetchAll();
        var_dump($result);
        echo $result['value'];
        echo $result;   
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="trainingen">
    Trainingen:<textarea name="nametrainingen" rows="10" cols="60"><?php echo $result['value']; ?></textarea></p>
    <input name="submit" type="submit" value="Verzenden"><input type="reset" value="Veld leeg maken">
    </form>

    <?php
        $invoer = $_POST['nametrainingen'];

        if (isset($_POST['submit'])) { //test if submit button is clicked
        $sql = "DELETE FROM milan WHERE tag = 'trainingen'";
        $sql = "INSERT INTO milan (tag, value) VALUES ('trainingen', '$result')";   
        $sth->execute();
        $result = $sth->fetchAll();
        $myFile = "trainingen.json"; 
        $fh = fopen($myFile, 'w') or die("can't open file");
        fwrite($fh, json_encode($result));
        fclose($fh);}
    ?>
<p>
</body>
</html>

var_dump の出力:

array(1) { 
    [0]=> array(6) { 
        ["id"]=> string(1) "0" 
        [0]=> string(1) "0" 
        ["tag"]=> string(10) "trainingen" 
        [1]=> string(10) "trainingen" 
        ["value"]=> string(17) "Hgioejigojerigjer" 
        [2]=> string(17) "Hgioejigojerigjer" 
    } 
} 
4

1 に答える 1

0
if (isset($_POST['submit'])) { //test if submit button is clicked
    $sql = "DELETE FROM milan WHERE tag = 'trainingen'";
    $sql = "INSERT INTO milan (tag, value) VALUES ('trainingen', '$result')";   
    $sth->execute();

の前の内容を再実行するだけです$sth- これらの 2 つのステートメントを準備してから実行する必要があります。次のように実行する必要があります。

if (isset($_POST['submit'])) { //test if submit button is clicked
    $sql = "DELETE FROM milan WHERE tag = 'trainingen'";
    $sth = $dbh->prepare($sql);
    $sth->execute();
    $sql = "INSERT INTO milan (tag, value) VALUES ('trainingen', '$result')";   
    $sth = $dbh->prepare($sql);
    $sth->execute();

追加するために編集されました:

$result = $sth->fetchAll();
var_dump($result);
echo $result['value'];
echo $result;

$result最終的には値の配列になります。配列内の各項目をステップ実行する必要があります。

于 2012-08-22T13:18:38.283 に答える