0

ユーザーが姓名を入力してから、[はい] または [いいえ] をクリックする単純な RSVP プログラムを作成しようとしています。その後、情報はデータベースに取り込まれます。ユーザーが姓と名を入力して「はい」または「いいえ」をクリックできるところに行き詰まっていますが、データベースには表示されません。これが私がこれまでに持っているものです。どんな助けでも感謝します。私はまだphpの初心者です。データベースにも xampp を使用しています。ありがとう

これが前半

<H1><div align="center">RSVP</div></H1>

<H3>Enter in the information that is requried</H3>

<form method ="POST" action = "RSVP.php">

Please type in your first name</br>

<input type = "text" name="fname"/></br>

Please type in your last name</br>

<input type = "text" name="lname"/>

</br></br></br></br>

<H2>Will you be attending?</h2>

<input type="radio" name="yorn" value="Yes">Yes

<input type="radio" name="yorn" value="No">No</br>


<input type="submit" value="Submit">

</form>

これはphpの半分です

<?php

if(empty($_POST['fname']) || empty($_POST['lname']))

print "Please type in BOTH first name and last name";
else{

$DBConnect = @mysql_connect("localhost", "Jordan", "bigboy");

if ($DBConnect === FALSE){

    print "<p>Unable to connect to the database server.<p>". "<p>Error code " 
                .mysql_errno(). ": ". mysql_error() . "</p>";

}else{

    $DBName = "jdatabase";

    mysql_select_db("jdatabase") or die(mysql_error());

    $TableName = "RSVP";

    $firstname = $_POST['fname'];

    $lastname = $_POST['lname'];

    $YorN = $_POST['yorn'];

    $SQLsting = "INSERT INTO '$TableName' VALUES(NULL, 

                   '$firstname','$lastname','$YorN')";

$QueryResult = @mysql_connect($SQLsting, $DBConnect);

}if ($QueryResult === FALSE){

    print "<p>Unable to execute query.<p>". "<p>Error code " 
                .mysql_errno($DBConnect). ": ". mysql_error($DBConnect) . "</p>";

}else{

    print "Thank You for RSVP";

}

mysql_close($DBConnect);    

}   

?>
4

2 に答える 2

1

これは、入力のエスケープを伴う基本的な mysqli の使用法です。

$DBName = "jdatabase";
$TableName = "RSVP";
$firstname = $_POST['fname'];
$lastname = $_POST['lname'];
$YorN = $_POST['yorn'];

/* Connection info for PHP/MySQL test database. */
defined('DB_HOST') ? NULL : define('DB_HOST', 'localhost');
defined('DB_USER') ? NULL : define('DB_USER', 'testUzer');
defined('DB_PWD') ? NULL : define('DB_PWD', 'xYzT@9123');
defined('DB_NAME') ? NULL : define('DB_NAME', $DBName);

/* Connect to database */
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PWD, DB_NAME);
if ($mysqli->connect_errno) exit("ERROR: Could not connect to database.");

/* Build the query string and escape input. */
$query = sprintf("INSERT INTO $TableName (first_name, last_name, yorn) VALUES('%s', '%s', '%s')", 
$mysqli->real_escape_string($firstname), 
$mysqli->real_escape_string($lastname), 
$mysqli->real_escape_string($YorN));

/* Insert the record. */
$result = $mysqli->query($query);
if(! $result) exit("ERROR: Database query failed.");
于 2012-12-18T18:05:54.807 に答える
0

古い mysql_* の方法を使用する場合でも、データベースにクエリを実行していません... mysql_query を呼び出す必要があります... コードで mysql_connect を 2 回使用しています。先頭に @ 記号があるため、これによるエラーは発生しません。

$QueryResult = mysql_query($SQLsting, $DBConnect);
于 2012-12-18T18:13:32.110 に答える