您好,我已经编写了一段代码,用于将数据从表单插入到 mysql 数据库:
$conn = new PDO("mysql:dbname=data12;host=$servername", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$ul = $_POST['fname'];
$sql="insert into t22 values('16',".$ul.")";
记录已添加,但值为空。 我还尝试过其他语法,例如:
$sql="insert into t22 values('16',$ul)";
$sql="insert into t22 values('16','".$ul."')";
$sql="insert into t22 values('16',$ul)";
请帮我解决这个问题。
最佳答案
首先要确保没有插入空值,您需要检查该值是否从表单中设置,然后在设置值时执行查询,还需要在使用 PDO 时准备语句,也不要直接在查询中输入变量,而是使用占位符。
你的代码应该是这样的:
<?php
$conn = new PDO("mysql:dbname=data12;host=$servername", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$errors = "";
$number = 16;
if (isset($_POST['buttonName'])) {
//check if the field is not empty
if (empty($_POST['fname'])) {
echo "enter name";
$errors++;
} else {
$ul = $_POST['fname'];
}
if ($errors <= 0) {//no errors lets insert
$sql = $conn->prepare("INSERT INTO t22 (id,name) values(?,?)");
$sql->execute(array(
$number,
$ul
));
echo "record entered";
}
}
?>
希望这能为您指明正确的方向。
NB: its important that you filter and sanitize $_POST values before storing them.
关于php - 使用php将表单中的数据插入mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40969232/