我正在尝试将多个值插入数据库。
首先我将这些值添加到数组中(省略了函数/其他代码):
$name = (isset($_POST['name']) ? ($_POST['name']) : "name");
$email = (isset($_POST['email']) ? ($_POST['email']) : "email");
$username = $mysqli->real_escape_string($_POST['username']);
$password = $mysqli->real_escape_string(md5($_POST['password']));
像这样:
$formvars = array();
array_push($formvars, $name, $email, $username, $password);
然后调用函数插入:
$sql = array();
for ($i = 0; $i < count($formvars);$i++) {
$sql[] = $formvars[$i];
}
print_r(implode(',', $sql));
$qry = 'INSERT INTO chinesegame (name, email, username, password) VALUES '. implode(',' , $sql);
if(!$mysqli->query($qry))
{
echo "Error inserting data to the table \nquery:$qry";
return false;
}
return true;
我的数据库结构是这样的:
它给了我一个插入错误:
将数据插入表查询时出错:INSERT INTO chinesegame(name, 邮件,用户名,密码) 丹,dthusky @ gmail.com,danman,827ccb0eea8a706c4c34a16891f84e7b
我不能像这样构建插入字符串吗?
答案 0 :(得分:1)
您忘记了“VALUES”关键字。和括号也有帮助。您还需要所有值都在引号中,这是正确的版本:
$qry = 'INSERT INTO chinesegame (name, email, username, password) VALUES ("'. implode('","' , $sql). '")';
此外,mysqli-&gt;查询首先获取一个连接变量,该变量具有与数据库的连接信息,它应如下所示:
$connection = mysqli_connect("localhost","my_user","my_password","my_db");
if(!$mysqli->query($connection, $qry))
另外,为了记录,
$sql = array();
for ($i = 0; $i < count($formvars);$i++) {
$sql[] = $formvars[$i];
}
可以替换为
$sql = $formvars;
没有理由在整个过程中循环使用它们。
答案 1 :(得分:0)
看起来你在insert语句中遗漏了一些东西:
$qry = 'INSERT INTO chinesegame (name, email, username, password) '. implode(',' , $sql);
尝试将insert语句更改为:
$qry = 'INSERT INTO chinesegame (name, email, username, password) VALUES ('. implode(',' , $sql).')';