2016-05-19 5 views
0

私はすべての例を実行した後、これがうまくいかない理由を見つけることができません。誰かがコードを見て、何が間違っているか教えてもらえますか?PHPの変数を使用してINSERT INTOクエリが機能しない


<!doctype html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>database connections</title> 
</head> 
<body> 
    <?php 
    include "functions.php"; 
    //.......This included file contains the function idgen()........... 

    $conn = mysqli_connect("localhost", "username", "password", "databasename"); 
    $sql = "SELECT * FROM Sign_Up"; 
    $result = mysqli_query($conn, $sql); 
    if (mysqli_num_rows($result) > 0) { 
     while ($row = mysqli_fetch_assoc($result)) { 
      $date = date('Y-m-j g:i:s'); 
      $id = idgen(); 
      $f = $row["FirstName"]; 
      $l = $row["LastName"]; 
      $bn = $row["BusinessName"]; 
      $ba = $row["BusinessAddress"]; 
      $e = $row["EmailAddress"]; 
      $pn = $row["PhoneNumber"]; 
      $p = $row["Password"]; 
      $sq = "INSERT INTO Distributors ('FirstName', 'LastName', 'BusinessName', 'BusinessAddress', 'EmailAddress', 'PhoneNumber', 'Password', 'ID', 'Date') VALUES 
      ($f, $l, $bn, $ba, $e, $pn, $p, $id, $date)"; 
      echo "successful"."<BR>"; 
      echo $f.$l.$bn.$ba.$e.$pn.$p.$id.$date."<BR>"; 
     } 
    } 
    else if (!$sq){echo "Error record: " . mysqli_error($conn); 
    } 
    mysqli_close($conn); 
    ?> 
</body> 
</html> 
+2

あなたの挿入クエリを実行していません –

+2

私は何年もPHPでプログラミングしていませんが、 PDOはまだ存在しますか?言語が進化していない限り、質問と現在の回答は、SQLインジェクションの脆弱性のようです。 – Aaron

+0

はい、インジェクションに脆弱です。エラーの原因に集中しようとしていた間に、セキュリティ部分をすべて削除しました。ここで言及されたすべての変数が定義されました。ありがとう –

答えて

-1
あなたは無効であるフィールド名に 'を使用

$sq = "INSERT INTO Distributors (`FirstName`, `LastName`, `BusinessName`, `BusinessAddress`, `EmailAddress`, `PhoneNumber`, `Password`, `ID`, `Date`) VALUES 
      ('$f', '$l', '$bn', '$ba', '$e', '$pn', '$p', '$id', '$date')"; 

にクエリを変更し

。値が数字でない場合は、'を値に使用する必要があります。

+0

なぜあなた-1のような私たちの2つの答え? –

+1

私はマイナスを与えていると言った人は?それは私ではなかった –

関連する問題