我想将一些值插入到 mysql 数据库中,并且认为这并不难。 然而我错了,也许我忽略了一些简单的事情。
这是我的代码:
$db = mysqli_connect("localhost", "*****", "*********", "usr_web633_3");
if(!$db)
{
exit("Error: ".mysqli_connect_error());
}
$sql = "INSERT INTO anmeldungen ('ID', 'vorname', 'name', 'gender', 'str', 'hausnummer', 'telefon', 'gemeinde', 'vegetarier'')
VALUES ('id', 'vorname', 'name', 'gender', 'str', 'hausnummer', 'telefon', 'gemeinde', 'vegetarier')";
$sqlinsert = mysqli_query($db, $sql);
if($sqlinsert == true) {
echo "works!";
}
else {
echo "doesn't work:(";
}
它没有像它应该的那样工作......这些值只是占位符。
希望能帮到你!
最佳答案
用反引号转义列和表名称。
INSERT INTO `anmeldungen` (`ID`, vorname, name, gender, str, hausnummer, telefon, gemeinde, vegetarier)
VALUES (1, 'vorname', 'name', 'gender', 'str', 'hausnummer', 'telefon', 'gemeinde', 'vegetarier')
并且您在最后一个列名称中引用了太多内容。请改用单个反引号。但其实你只需要逃避reserved words in MySQL
并注意您的列数据类型。您无法将字符串插入数字列。所以 id
可能只能是一个数字。
如果您的 id
是自动递增值,那么您根本不应该提供值。使用 null
或从插入语句中完全保留该列。
INSERT INTO `anmeldungen` (`ID`, vorname, ...
VALUES (null, 'vorname', ...
关于PHP/mysql 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25325029/