2016-05-24 6 views
0

私は、各ユーザが自分のテーブルを取得するという簡単なWebサイトを設定しています。 Facebookの壁のバージョン。PHP変数名を使用してテーブルに値を挿入する

これは私がテーブルを作成するときに、私のクエリは次のようになります。しかし

$userTable = mysqli_query($conn, "CREATE TABLE `".$epost."`(
     ID INT(255) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
     eMail VARCHAR(50) NOT NULL, 
     comment VARCHAR(500) NOT NULL, 
     timestampp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 
     )"); 

、私はフォームから値を取得し、特定のテーブルにそれらを挿入しようとすると、彼らが見えることはできませんそこに彼らの道を見つける。ここではその私のコードです:「。$メール」私は、変数の異なる「バージョン」をしようとしてきた

<?php 

include 'connect.php'; 

/*if(isset ($_POST['userUser']))*/ 

$valueEmail = mysqli_real_escape_string($conn, $_POST['userEmail']); 
$valueUser = mysqli_real_escape_string($conn, $_POST['userUser']); /*have the user to input the name, so i can connect to the correct DB*/ 
$valueMessage = mysqli_real_escape_string($conn, $_POST['userMessage']); 

$findUserTable = "SELECT * FROM UserInfo WHERE Firstname = '$valueUser'"; 
$findUserEmail = mysqli_query($conn, $findUserTable); 

if(mysqli_num_rows($findUserEmail) > 0) /*finding the name of the persons email*/ 
    { 
     while ($result = mysqli_fetch_assoc($findUserEmail)) 
     { 
      $email = $result['Email']; 
     } 
    } 

/* VALIDATION HERE */ 

$sql = "INSERT INTO ".$email." (eMail, comment) VALUES ('$valueEmail', '$valueMessage')"; /* wrong query?*/ 

header("refresh:10 url=userProfil.php"); 
/*echo '<script>alert("Meddelande skapat!");</script>';*/ 

echo $sql; 

mysqli_close($conn); 

?> 

、などは、'.$email.'".$epost."。私は私の質問や変数だけをエコーアウトすると正しい名前が得られますが、テーブルを見つけることはできません。 私のコードはひどく匂いがすることをよく知っています。その点で私を助けてください。

+1

は、INSERTクエリを実行することを忘れて! mysqli_query($ conn、$ sql) 'を使用します。 – Saty

+0

@Saty - お返事ありがとうございます。このようなことを意味しますか? if(mysqli_query($ conn、$ sql)){ echo "新規レコードが正常に作成されました"; } else { echo "エラー:" $ sql。 "
" mysqli_error($ conn); } 私はちょうど混乱を引き起こしている場合、これで新しい、申し訳ありません。 –

+0

mysqli_real_escape_stringの使用は必ずしも安全ではありません。代わりにprepared statementsを使用してください。 – apokryfos

答えて

1

あなたは単にあなたのクエリを実行することを忘れないでください。

$sql = "INSERT INTO ".$email." (eMail, comment) VALUES ('$valueEmail', '$valueMessage')"; /* wrong query?*/ 

使用この

mysqli_query($conn,$sql);//for execute 

より良い利用バインドと

$sql = "INSERT INTO ".$email." (eMail, comment) VALUES (? ,?)"; /* wrong query?*/ 
$stmt = $conn->prepare($sql); 

$stmt->bind_param("ss", $valueEmail, $valueMessage); 
/* Execute the statement */ 
$stmt->execute(); 
$row = $stmt->affected_rows; 
if ($row > 0) { 
    echo "data inserted"; 
} else { 
    "error"; 
} 

として文を準備読むhttp://php.net/manual/en/mysqli-stmt.bind-param.php

+0

ええ、これは私の問題を解決しました。ありがとう、良い一日を! –

+0

なぜdownvote ??あなたは理由を説明することを敢えてすることができますか? – Saty

関連する問題