1

友人の会社の保証登録ページをセットアップしようとしていますが、Mysql や PHP が苦手です (Read: Noob)。私は答えを求めて Web を精査し、以下のコードのいくつかのバリエーションを試しましたが、成功しませんでした。

列名が一致するテーブルをセットアップしました。フォームの送信も正しく設定されていると思います。

何が実際にデータをデータベースに投稿するのを妨げているのかは定かではありません。どんな助けでも大歓迎です。

これが私の郵便番号です。

<?php
error_reporting(-1);


$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$address = $_POST['address'];
$city = $_POST['city'];
$state = $_POST['state'];
$zipcode = $_POST['zipcode'];
$country = $_POST['country'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$ordernumber = $_POST['ordernumber'];
$receivedate = $_POST['receivedate'];
$placeofpurchase = $_POST['placeofpurchase'];
$newsletter = $_POST['newsletter'];
?>

<?php
$con = mysqli_connect("localhost","DB_Username","PASSWORD","DB_NAME");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql = ("INSERT INTO warrantyregistration (firstname, lastname, address, city, state, zipcode, country, phone, email, ordernumber, receivedate, placeofpurchase, newsletter)
VALUES
($firstname, $lastname, $address, $city, $state, $zipcode, $country, $phone, $email, $ordernumber, $receivedate, $placeofpurchase, $newsletter)");


if (mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "Success!";

mysqli_close($con)
?>
4

4 に答える 4

0

クエリをパラメータ化し、準備済みステートメントを使用する必要があります。これにより、SQL インジェクションから保護され、問題が修正されます。あなたがする必要があることの要約版は次のとおりです。

$stmt = mysqli_prepare($con, "INSERT INTO warrantyregistration
    (firstname, lastname, address) VALUES (?, ?, ?)");
mysqli_stmt_bind_param($stmt, "sss", $firstname, $lastname, $address);
mysqli_stmt_execute($stmt); 
于 2013-09-04T20:50:08.910 に答える
0

この行を変更します。

if (mysqli_query($con,$sql))

に:

if (!mysqli_query($con,$sql))

エラーメッセージが表示されます。

于 2013-09-04T20:25:53.963 に答える
0

SQL ステートメントの構文が間違っています。Php変数をに設定する必要があります´$variable´

ここで私の作業コードを参照してください:

insert into user
  (
    userid,
    signedin_at,
  )
  values
  (
    '$vp_userid',
    now()
  );
于 2019-11-02T10:14:46.650 に答える
-1

同じエラーが発生しました。パラメータ化せずに、SQL ステートメントでそのエラーを修正できます。

...
$sql = "INSERT INTO warrantyregistration VALUES ($firstname, $lastname, $address, $city, $state, $zipcode, $country, $phone, $email, $ordernumber, $receivedate, $placeofpurchase, $newsletter)";
...
于 2015-05-20T23:40:32.070 に答える