-1

我正在尝试使用 PHP 在 PHP 中运行查询mysqli_query()

我的查询存储在变量$query中,如下所示:

  $query = "INSERT INTO spaces (";
  $keys = '';
    $values = '';
    foreach ($newrow as $key=>$value){
        $keys .= $key.",";
        $values .= "'".$value."',";
    }
    $keys = substr($keys, 0, -1);
    $values = substr($values, 0, -1);
    $query .= $keys;
    $query .= ") values(";
    $query .= $values;
    $query .= ")";`

在使用echo $query时,它显示生成的查询。

但是,我现在必须在数据库中执行这个查询。

目前,我正在使用$result = mysqli_query($success, $query);where$result是建立与数据库的连接的变量。但是,这不起作用,也不是$result = mysqli_query($query);

我需要帮助来弄清楚如何正确地将变量作为查询传递。

4

2 回答 2

0

你需要一个链接:

$link = mysqli_connect(DB_SERVER, DB_USER, DB_PASS,DB_NAME);

然后:

$result = mysqli_query($link, $query)

你的$success变量中有什么?如果是链接,那么您是否在检查:

if (mysqli_connect_errno()) {
    return false;  // or whatever other flag that it failed
}
于 2013-08-31T21:51:26.743 回答
0

基本上,只需mysqli_query像往常一样调用,但可以放入变量而不是运行查询。但是请注意,您可以大大简化代码:

$keys = array_map(function($a) {return "`".$a."`";},array_keys($newrow));
$values = array_map(function($a) {return "'".mysql_real_escape_string($a)."'";},array_values($newrow));
mysqli_query($link,"INSERT INTO spaces (".implode(",",$keys).") values (".implode(",",$values).")");
于 2013-08-31T21:52:32.690 回答