首页 > 解决方案 > mysqli 查询上的多个命令不起作用?

问题描述

如果我写这样的查询:

$conn = new mysqli($db_host, $db_username, $db_password, $db_database);
$conn -> query ("
        DROP TABLE IF EXISTS for_search;
        CREATE TABLE IF NOT EXISTS for_search
        (
          id INT,
          for_search TEXT
        );
");
$conn -> close();

它不起作用,但如果我这样重写:

$conn = new mysqli($db_host, $db_username, $db_password, $db_database);
$conn -> query ("
        DROP TABLE IF EXISTS for_search;
");    
$conn -> query ("
        CREATE TABLE IF NOT EXISTS for_search
        (
          id INT,
          for_search TEXT
        );
");
$conn -> close();

它会工作的!我想知道为什么我不能在 mysqli 中编写多行查询?

标签: phpmysqlmysqli

解决方案


在 mysqli 中,您应该使用它multi_query来运行多个查询:

$conn = new mysqli($db_host, $db_username, $db_password, $db_database);
    $conn -> multi_query ("
        DROP TABLE IF EXISTS for_search;
        CREATE TABLE IF NOT EXISTS for_search
        (
          id INT AUTOINCREMENT,
          for_search TEXT
        );
    ");
    $conn -> close();

推荐阅读