2017-04-07 6 views
0

のような$ _POST方法を使用することは、私は関数に挿入MySQLでこれを使用するにはどうすればよいPHPは、変数

for($i=0; $i <= 5; $i++){ 
    $anyway = $_POST['smth'].$i; 
} 

?:PHPのような何かを行うことができます。

$sql = "INSERT INTO try (column_1) VALUES ('".$anyway."')"; 
+0

ます。http:// PHP。 net/manual/en/mysqli.quickstart.prepared-statements.php – Jpsh

+1

ループのたびに '$ anyway'を再割り当てします。最後には最後の反復の値になるので、 '$ anyway = $ _POST ['smth']だけです。 "5"; ' – Barmar

答えて

1

まず、forループで使用する前に$ _POST ['smth']を変数に格納することをお勧めします。

$smth = $_POST['smth']; //remember to sanitize strings taken from user input 
$anyway = ""; // Declare $anyway before the for loop to avoid overwriting it 
for($i=0; $i <= 5; $i++){ 
    $anyway = $smth.$i; 
} 

次にあなたが設定し、データベース接続をテストする必要があります。

$mysqli = new mysqli("example.com", "user", "password", "database"); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 

最後に、バインドを準備して、クエリを実行します。

$stmt = $mysqli->prepare("INSERT INTO (column_1) VALUES (?)"); 
$stmt->bind_param("s", $anyway); 
if (!$stmt->execute()) { 
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error; 
} 
+0

準備された文を使用する点は、変数を' $ sql'に代入するのではなく、 'mysqli_stmt_bind_param'を使うことです。 – Barmar

+0

あなたは正しいです。 bind_param()関数をインクルードするだけでなく、forループの外側に変数$を宣言して、上書きすることを避けるために、私の答えを更新しました。 –