我正在尝试使用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);
,其中$result
是用于建立与数据库的连接的变量。
但是,这不起作用,$result = mysqli_query($query);
我需要帮助弄清楚如何正确地将变量作为查询传递。
答案 0 :(得分:0)
您需要一个链接:
$link = mysqli_connect(DB_SERVER, DB_USER, DB_PASS,DB_NAME);
然后:
$result = mysqli_query($link, $query)
$success
var中包含哪些内容?如果是链接,那么你在检查:
if (mysqli_connect_errno()) {
return false; // or whatever other flag that it failed
}
答案 1 :(得分: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).")");