0

config.php は、接続コードを含むグローバル ファイルです。

私の更新された Insert.php コードは次のとおりです。

<?php

include("config.php");

if ($submit) {
    if (isset($_POST[firstname]) && isset($_POST[lastname]) && isset($_POST[age])) {
        $sql = "INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
        mysql_query($sql, $connect); 
        echo "1 record added";
    }
    else {
        // do nothing now
    }
}
else {
?>
<form action="<?php echo $PHP_SELF ?>" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>

<?php
}

//if (!mysql_query($sql,$connect))
 //{
  //die('Error: ' . mysql_error());
  //}

mysql_close($connect);
?> 

私の View.php コードは次のとおりです。

<?php
include("config.php");

$sql = mysql_query("SELECT * FROM Persons");
while($results = mysql_fetch_array($sql)) {
    echo $results['FirstName'] . ', ' . $results['LastName'] . ', ' . $results['Age'] . '<br/>';
}

if (!mysql_query($sql,$connect))
{
  die('Error: ' . mysql_error());
}

mysql_close($connect);
?>

私のConfig.phpコードは次のとおりです。

<?php

$dbhost="MYWEBHOST";
$dbusername="MYUSERNAME";
$dbpassword="MYPASSWORD";
$dbname="MYDATABASE";

$connect = mysql_connect($dbhost, $dbusername, $dbpassword);
mysql_select_db($dbname,$connect) or die ("Could not connect to database");

?>

Insert.php が実行された後、「1 レコードが追加されました」というメッセージが表示され、View.php に移動すると、次のエラーが表示されます。「エラー: SQL 構文にエラーがあります。対応するマニュアルを確認してください。 1 行目の 'Resource id #4' の近くで使用する正しい構文の MySQL サーバーのバージョン"

私は何を間違えましたか?

また、ユーザーがテーブルに null 値を追加し続ける Insert.php ページを更新できないようにするにはどうすればよいですか?

4

2 に答える 2

1

SQL ステートメントを変数に割り当てるだけで、実行することはありません。これを試して:

$sql = "INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

mysql_query($sql);

echo "1 record added";

人々があなたのinsert.phpをリロードするのを防ぐためのさまざまなアプローチがあります。一般に、insert.php は、ユーザーが現在それを呼び出すことを許可されているかどうかを判断する必要があります。最新の php 開発では、特定のタスクに対して単一の .php ファイルを使用するのではなく、ルートとフレームワークを使用します。

于 2013-02-21T18:16:17.287 に答える
1

これを試して

<?php
include("config.php");

$sql = mysql_query("SELECT * FROM Persons");
if ($sql) {
    while($results = mysql_fetch_array($sql)) {
        echo $results['FirstName'] . ', ' . $results['LastName'] . ', ' . $results['Age'] .     '<br/>';
    }
} else {
    die('Error: ' . mysql_error());
}


mysql_close($connect);
?>
于 2013-02-21T18:26:34.843 に答える