php SQL insert在数据库中生成空条目。

php SQL insert在数据库中生成空条目。,php,mysql,forms,Php,Mysql,Forms,当我提交表单时,会收到一条成功消息,但是数据库中的数据丢失,条目为空 基本上,问题在于$sql字符串中的错误 sql字符串将很好地返回值,但是数据库中的条目为空 // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $

当我提交表单时,会收到一条成功消息,但是数据库中的数据丢失,条目为空

基本上,问题在于$sql字符串中的错误

sql字符串将很好地返回值,但是数据库中的条目为空

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
$name = (string)$_POST["name"];
$email = (string)$_POST["email"];
$phone = (string)$_POST["phone"];

$sql = "INSERT INTO myTable (name,email,phone)
VALUES ('{$name}','{$email}','{$phone}')";


if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
//创建连接
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
} 
$name=(字符串)$\u POST[“name”];
$email=(字符串)$_POST[“email”];
$phone=(字符串)$\u POST[“phone”];
$sql=“插入myTable(姓名、电子邮件、电话)
值({$name}',{$email}',{$phone}');
if($conn->query($sql)==TRUE){
echo“新记录创建成功”;
}否则{
echo“Error:”.$sql.“
”$conn->Error; } $conn->close();
我已将引号更改为“文字”,并将id添加到每个表单字段,我还删除了(字符串)强制转换,现在它可以工作了

PHP:

    $name =$_POST['name'];
    $email =$_POST['email'];
    $phone =$_POST['phone'];
    <input type="text" id="name" name="name" placeholder="Name:"/><br/>
    <input type="text" id="email" name="email" placeholder="Email:"/><br/>
    <input type="text" id="phone" name="phone" placeholder="Phone Number:"/><br/>
HTML:

    $name =$_POST['name'];
    $email =$_POST['email'];
    $phone =$_POST['phone'];
    <input type="text" id="name" name="name" placeholder="Name:"/><br/>
    <input type="text" id="email" name="email" placeholder="Email:"/><br/>
    <input type="text" id="phone" name="phone" placeholder="Phone Number:"/><br/>




这看起来非常适合SQL注入。执行时,
$sql
的实际运行时值是多少?能否发布表单的HTML?您是否将其方法设置为POST?您是否尝试过打印$u POST、$name、$email和/或$phone,以查看它们是否包含您认为它们所做的事情?也许只需将成功消息更改为
echo“Created record({$name}',{$email}',{$phone}”)
检查和/或添加
回显“POST数据:”。打印($\u POST,true);