在php中写多行sqli查询?

时间:2016-01-14 08:45:00

标签: php mysqli

我在表中有超过100个字段,我正在尝试在php中编写mysqli查询。目前我的查询是在一行。 但是为我管理起来有点困难。

if ($result = $mysqli->query("SELECT Name1,Name2,Name3,Name4,Name5,Name6,Name7,Name8,Name9,Name10,Name11,Name12,Name13,Name14,Name15,Name16,Name17,Name18,Name19,Name20,Name21,Name22,Name23,Name24,Name25,Name26,Name27,Name28,Name29,Name30,Name31,Name32,Name33,Name34,Name35,Name36,Name37,Name38,Name39,Name40,Name41,Name42,Name43,Name44,Name45,Name46,Name47,Name48,Name49,Name50,Name51,Name52,Name53,Name54,Name55,Name56,Name57,Name58,Name59,Name60,Name61,Name62,Name63,Name64,Name65,Name66,Name67,Name68,Name69,Name70,Name71,Name72,Name73,Name74,Name75,Name76,Name77,Name78,Name79,Name80,Name81,Name82,Name83,Name84,Name85,Name86,Name87,Name88,Name89,Name90,Name91,Name92,Name93,Name94,Name95,Name96,Name97,Name98,Name99 FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);
/* free result set */
$result->close();
}

以上是示例代码。

我想知道如何将其写入多行。因此,它很容易管理。

4 个答案:

答案 0 :(得分:6)

在PHP中,字符串可以跨越多行:

$sql = "
SELECT name1, name2
FROM table
";

您还可以使用连接(确保记住空格):

$sql =
  "SELECT name1, name2".
  " FROM table";

或者,您可以动态创建SQL:

$fields = Array("name1", "name");
$fieldlist = implode(", ", $fields);
$sql = "SELECT $fieldlist FROM table";

答案 1 :(得分:1)

在PHP代码中,您可以编写多行查询

if ($result = $mysqli->query("SELECT Name1,Name2,Name3,Name4,Name5,
Name6,Name7,Name8,Name9,Name10,
Name11,Name12,Name13,Name14,Name15,
Name16,Name17,Name18,Name19,Name20,
Name21,Name22,Name23,Name24,Name25,
Name26,Name27,Name28,Name29,Name30,
Name31,Name32,Name33,Name34,Name35,
Name36,Name37,Name38,Name39,Name40,
Name41,Name42,Name43,Name44,Name45,
Name46,Name47,Name48,Name49,Name50,
Name51,Name52,Name53,Name54,Name55,
Name56,Name57,Name58,Name59,Name60,
Name61,Name62,Name63,Name64,Name65,
Name66,Name67,Name68,Name69,Name70,
Name71,Name72,Name73,Name74,Name75,
Name76,Name77,Name78,Name79,Name80,
Name81,Name82,Name83,Name84,Name85,
Name86,Name87,Name88,Name89,Name90,
Name91,Name92,Name93,Name94,Name95,
Name96,Name97,Name98,Name99 
FROM City 
LIMIT 10")) {
printf("Select returned %d rows.\n", $result->num_rows);
/* free result set */
$result->close();

上面列出的代码绝对正确

答案 2 :(得分:1)

您可以通过以下方式管理此查询:

$query = "SELECT name1, name2, name3," .
         "name4" .
         "FROM table" .
         "WHERE name1=$var";
$result = $mysqli->query($query);

$result = $mysqli->query("SELECT name1, name2, name3," .
             "name4" .
             "FROM table" .
             "WHERE name1=$var");

这看起来更清晰,减少了引用" '的可能性。

这只是我的建议而非标准。希望这可以帮助! ;)

答案 3 :(得分:1)

我的所有查询格式都是这样的:

$query = "SELECT "
          . " col1, col2, col3, col4, col5, col6, col7, col8, col9, "
          . " col10, col11, col12, col13, col14, col15, col16, col17 "
          . " FROM table " 
          . " WHERE col1 = $val";

尽管这似乎有点低效,它确实有助于管理查询,我通常会继续列,直到我必须水平滚动。

另外,我注意到数据库效率非常低,您能告诉我们您尝试在数据库中保存的内容以及为什么在一个表中有这么多列? (确实意识到在一个表中存储这么多字段是一种不好的做法,你应该拆分数据。)

希望这会有所帮助:)