简单对象sqli插入

时间:2014-09-25 17:04:28

标签: php object mysqli foreach insert

您好我想将$ _SESSION中的所有内容插入行$ key中,值为$ value 像foreach ($_SESSION as $key => $value) {}之类的东西 俯瞰:Best way to INSERT many values in mysqli? mysqli中的行名与给定$ key的名称相同。我需要在其$ key(行)中插入每个$值

代码:

$query = "INSERT INTO testtable VALUES (?)";
$stmt = $dbc->prepare($query);
$stmt->bind_param("s", $key);
$mysqli->query("START TRANSACTION");
foreach ($_SESSION as $key => $value) {
    $stmt->execute();
}
$stmt->close();
$mysqli->query("COMMIT");

2 个答案:

答案 0 :(得分:0)

您的查询有语法错误,您从不打扰检查:

$query = "INSERT INTO testtable podatki VALUES (?)";
                      ^^^^^^^^^^^^^^^^^

如果这真的是表名,那么应该用反引号引用它:

$query = "INSERT INTO `testtable podatki` VALUES (?)";
                      ^-----------------^

如果podatki是字段名称,那么它应该是

$query = "INSERT INTO testtable (podatki) VALUES (?)";
                                ^-------^

并且从不假设数据库操作成功。总是检查错误:

$stmt = $dbc->prepare($query);
if (!$stmt) {
   die(mysqli_error($dbc));
}

答案 1 :(得分:0)

错误在于您正在尝试在非对象上调用成员函数,即bind_param()

这意味着这一行:

$stmt = $dbc->prepare($query);

没有成功,

因此您的返回值不正确,设置为$stmt

的值

因此,当您尝试调用bind_param时,它会失败,因为$stmt不是它所期望的对象类型。