0

次のスクリプトを取得して、送信されたデータをデータベースに送信しようとしています。失敗しているようで、mysqli_error から、SQL 構文が間違っているというエラーが表示されます。それでも、私の本に記載されている構文に従っています。

Get['save'] が設定されている場合は、フォームが送信されたことを意味します。スタックオーバーフローの他の場所で提案されているように、列名の周りにバックティックを追加しようとしましたが、役に立ちませんでした。

ここに私が得ているエラーがあります:

「SQL 構文に誤りがあります。MySQL サーバーのバージョンに対応するマニュアルで、使用する正しい構文を確認してください。[(`person`, `age`)] VALUES ({$person, $age})' 1行目」

警告: mysqli_fetch_array() は、パラメーター 1 が mysqli_result であると想定します。ブール値は C:\wamp\www\contacthmw3\index.php の 33 行目に指定されています

Call Stack  
# Time    Memory  Function    Location  
1 0.0024  148104  {main}( )   ..\index.php:0  
2 0.0163  157640  mysqli_fetch_array ( )  ..\index.php:33  
   <?php
    include_once 'magicquotes.php';
    include_once 'db.inc.php'; // connects, sets chars, selects db
    include_once 'form.php'; // just saves form to $form

    $sqlselect = 'SELECT person, age FROM people;
      SELECT email, phone FROM contacts;';
    if (!isset($_GET['save'])) {
        echo $form;
    } else {
        $person = $_GET['person'];
        $age = $_GET['age'];
        $email = $_GET['email'];
        $phone = $_GET['phone'];
        $sqlsave = 'INSERT INTO people (`person`, `age`) VALUES ($person, $age);';
        $savedtodb = mysqli_query($link, $sqlsave);
        if (!$savedtodb)
        {echo 'Failed to save to db' . mysqli_error($link);}
        // send form submission to db with sanitized data
    }

    $contacts = mysqli_query($link, $sqlselect); //retrieve data into $contacts array
    if (!$contacts) {
        echo 'Failed to get contacts from db.' . mysqli_error($link);
    }
    while ($row = mysqli_fetch_array($contacts)) {
        $showme[] = array('person' => $row['person'], 'age' => $row['age']);


        foreach ($showme as $indiv => $age) {
            echo $indiv . $age;
        }
    }
    ?>


    <?php
    if (isset($_GET['save'])):
    ?>
        <p>Last details entered into the table:</p>
        <table border="1">
            <tr> <th>Person</th><th>Age</th><th>Email</th><th>Phone</th></tr>
            <tr>

                <td> <?php echo $_GET['person']; ?></td>
                <td> <?php echo $_GET['age']; ?></td>
                <td> <?php echo $_GET['email']; ?></td>
                <td> <?php echo $_GET['phone']; ?></td>
            </tr>
        </table>
    <?php
        endif;
    ?>
4

1 に答える 1

3

mysqli_multi_query()ではなくmysqli_query ()を使用して複数のクエリを実行しようとしています。おそらく、結合を使用して単一のクエリを実行して、必要な結果を取得する必要があります

于 2012-12-31T13:53:48.477 に答える