我在php中写了这个查询:
$query = "insert into admin values($user,$pass,$email,$signature)";
mysql_query($query);
但它有问题,无法在数据库中插入信息。为什么? 数据库没有任何错误。
答案 0 :(得分:4)
您必须将字符串放在引号内。 尝试这种方式并检查错误消息。
$query = "insert into admin values('$user','$pass','$email','$signiture')";
mysql_query($query) or die(mysql_error());
答案 1 :(得分:1)
您需要引用字符串值:
$query = "insert into admin values('$user','$pass','$email','$signiture')";
此外,您的值计数必须与您的列数完全匹配,否则您必须明确列出您的列:
$query = "insert into admin (`username`, `password`, `email`, `signiture`) values('$user','$pass','$email','$signiture')";
此外,“签名”也是错误拼写的。
答案 2 :(得分:1)
首先,您需要在变量周围加上单引号。此外,您需要确保变量为properly escaped,因为如果您的某个变量只有一个引号,您的查询仍会失败。
$query = sprintf("insert into admin values('%s','%s','%s','%s')",
mysql_real_escape_string($user),
mysql_real_escape_string($pass),
mysql_real_escape_string($email),
mysql_real_escape_string($signiture));
mysql_query($query);
最后,正如其他用户所指出的那样,明确列出您希望插入的列通常是个好主意。
答案 3 :(得分:0)
你需要用这样的单引号来包围你的价值
$query = "insert into admin values('$user','$pass','$email','$signiture')";
如果上述方法无效,请尝试使用以下语法:
INSERT INTO TABLE(col1,col2,col3) VALUES('val1','val2','val3')
答案 4 :(得分:0)
试试这个(可能没什么区别,但值得一试):
$query = "insert into admin (userColumnName, passColumnName, emailColumnName, sigColumnName) values ($user, $pass, $email, $signature)";
mysql_query($query);
您必须使用数据库中的实际列名替换userColumnName
等。