【问题标题】:Php, $_POST method use like variablePHP, $_POST 方法使用类似变量
【发布时间】:2017-04-07 20:45:03
【问题描述】:

我可以在 PHP 中做类似的事情吗?:

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

如何在 Mysql 的插入函数中使用这个。

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

【问题讨论】:

标签: php post mysqli sql-insert


【解决方案1】:

首先,我建议将 $_POST['smth'] 存储在一个变量中,然后再在你的 for 循环中使用它。

$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;
}

【讨论】:

  • 使用prepared statement的要点是使用mysqli_stmt_bind_param,而不是将变量代入$sql
  • 你是对的;我已经更新了我的答案以包含 bind_param() 函数以及在 for 循环之外声明变量 $anyway 以避免覆盖它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多