我希望这不是一个重复的问题。我搜遍了所有找到答案无济于事。
我想插入一行表格。这听起来很简单,但如果表是空的,它将无法工作。我无法弄清楚为什么。只要表中有一行,它就可以正常工作。任何帮助表示赞赏。谢谢。
我的代码:
<?php
$fname = $_POST['fname'];
$mi = $_POST['mi'];
$lname = $_POST['lname'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$add1 = $_POST['add1'];
$add2 = $_POST['add2'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];
$con = mysqli_connect("localhost","database_username","database_password","database");
$sql1 = "INSERT INTO employee (fname, mi, lname, phone, email, add1, add2, city, state, zip) VALUES ('$fname', '$mi', '$lname', '$phone', '$email', '$add1', '$add2', '$city', '$state', '$zip')";
mysqli_query($con,$sql1);
mysqli_close($con);
?>
答案 0 :(得分:0)
您的代码是正确的,但有时数据可能会有一些特殊字符,例如\ /?等因此建议您从
更改代码的所有变量$fname = $_POST['fname'];
到
$fname = addslashes($_POST['fname']);
然后尝试它将完成
答案 1 :(得分:0)
你没有逃避价值观。如果任何值包含撇号,则查询将失效。由于他们来自帖子,您必须使用mysqli_real_escape_string
。
答案 2 :(得分:0)
使用以下execute来插入行
mysqli_query($con,$sql1);
musqli_execute($sql1);
答案 3 :(得分:0)
经过几个小时尝试我能想到的所有事情之后我才开始工作......最终,我最后先检查一个空表,然后重新创建表,如果它是空的。
我不确定为什么会这样,但这是我的代码...它有点不优雅,但我找不到更好的解决方案。我知道我没有逃脱我的价值观。我会晚点。就目前而言,我只是想解决这个问题,我几天都在困扰着我的大脑。
<?php
$fname = $_POST['fname'];
$mi = $_POST['mi'];
$lname = $_POST['lname'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$add1 = $_POST['add1'];
$add2 = $_POST['add2'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];
$con = mysqli_connect("localhost","username","password","database");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
$sql = 'CREATE TABLE employee'
. ' ('
. ' fname text,'
. ' mi varchar(1),'
. ' lname text,'
. ' email varchar(100),'
. ' phone varchar(15)'
. ' add1 varchar(100),'
. ' add2 varchar(100),'
. ' city varchar(100),'
. ' state varchar(25)'
. ' zip varchar(10),'
. ' );';
$sql1 = "INSERT INTO employee (fname, mi, lname, phone, email, add1, add2, city, state, zip,) VALUES ('$fname', '$mi', '$lname', '$phone', '$email','$add1', '$add2', '$city', '$state', '$zip')";
$sql2 = "SELECT * FROM employee";
$sql3 = mysqli_query($con,"SELECT count(*) FROM employee");
if ($sql3 == FALSE) {
trigger_error(mysql_error()." in ".$sql3);
exit();
}
else
{
$result = mysqli_fetch_array($sql3);
}
if($result[0] != 0)
{
mysqli_query($con,$sql1);
}
else
{
mysqli_query($con,$sql);
mysqli_query($con,$sql1);
}
mysqli_close($con);
?>
答案 4 :(得分:0)
如果变量是字符串,请使用'“。$ fname。”'查询中的foreach变量