【发布时间】:2014-01-02 01:05:54
【问题描述】:
我正在尝试向数据库中插入几个值。
首先我将这些值添加到数组中(函数/其他代码省略):
$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
我可以不构建这样的插入字符串吗?
【问题讨论】:
-
字符串应该在 SQL 上下文中被引用。你也考虑过绑定参数吗?
-
@mario 我无法使用这些,所以我选择了 real_escape_string。您能否详细说明 SQL 上下文中的字符串引号
-
是的,
mysqli很难正确使用。查看pdo_query()。