mysqli_query
功能不起作用
$query=mysqli_query($config,"INSERT into users (username,first_name,last_name,email,password) VALUES('$un','$fn','$ln','$em','$pass','$date','0')");");
当我回显SQL查询时,它运行正常,但当我尝试插入数据库时,它没有做任何事情并转到下一行。
我使用了像$signup = @$_POST['signup'];
signup
是提交按钮的名称。
答案 0 :(得分:1)
您需要修复查询,因为您已经说明了5个字段并尝试插入7个值...
因此,一旦您知道“no_clue_what_this_guy_is_called和日期”的字段名称,您就可以进一步发展。另外,请注意你的“),因为你有太多...
另外请注意,请不要使用短变量名称。这真是太痛苦了。输入“大词”并不值得。 I.E. $ un应为$ user_name等。
因此,根据您的问题和错误的变量名称,您需要类似......
的内容$query = mysqli_query($config, "INSERT into users(
username,
first_name,
last_name,
email,
password,
date,
no_clue_what_this_guy_is_called
) VALUES (
'$un',
'$fn',
'$ln',
'$em',
'$pass',
'$date',
'0'
)");
您只需要引用varchars / text等列。不要在整数周围使用单引号。
还有更多可以说的,但这应该让你解决这个问题的一部分。 我不确定你的表中定义了什么类型'0'。
答案 1 :(得分:0)
<强>的信息强>
INSERT INTO语句有两种基本语法如下:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN);
如果要为表的列添加所有的值,则可能不需要在SQL查询中指定列名称。
INSERT INTO TABLE_NAME VALUES (value1,value2,value3);
如何检查错误
您还可以检查您的连接是否已建立或以下代码是否有任何错误:
if (!$config) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
或者最后,您可以使用以下方法检查查询错误:
echo mysqli_error($config);
有关调试的更多信息,请阅读here
代码中的问题
<强> 1 强>
在您的代码中,您有太多)
,它应该如下所示:
$query=mysqli_query($config,"INSERT into users (username,first_name,last_name,email,password) VALUES('$un','$fn','$ln','$em','$pass','$date','0');");
<强> 2 强>
你也试图在5个表中插入7个值,VALUES
中有太多的表,或者你写的表太少了。
第3 强>
在@
之前删除$_POST
,因为可能存在某些错误,导致它不会显示。可以找到更多信息here
答案 2 :(得分:0)
我建议你像这样使用
$con = mysqli_connect("host_name","db_username","db_password","db_name");
$query = "insert into tbl_name(col1,col2,col3) values('$val1','$val2','$val3')";
$insert = mysqli_query($con,$query);