在单个MYSQL查询中分离语句


separate statements in single MYSQL query

如何在单个MYSQL查询中分离语句?

是分号吗?

我不认为这很重要,但我正在编写由PHP函数调用的语句

编辑:问题是我似乎不理解UPDATE语法,你可以用一个UPDATE语句执行多个字段

使用mysqli_函数(docs),您可以使用mysqli_multi_query (docs)在同一字符串中传递多个查询

文档中的例子:

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s'n", mysqli_connect_error());
    exit();
}
$query  = "SELECT CURRENT_USER();";
$query .= 'UPDATE City SET name = "Boston" WHERE id = 5';
/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s'n", $row[0]);
            }
            $result->free();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------'n");
        }
    } while ($mysqli->next_result());
}
/* close connection */
$mysqli->close();
?>

如果您使用一个PHP调用从数据库获取数据或向数据库发送数据,它将无法工作。MySQL PHP驱动程序支持查询字符串的执行,而不是脚本。如果希望通过一次调用执行多个命令,请查看存储过程。

http://dev.mysql.com/doc/refman/5.0/en/stored-routines.html

我觉得你想这么做?

<?php
$query  = "SELECT name, subject, message FROM contact;select name from contact;";
$result = mysql_query($query);
?>

它不会工作,因为PHP不知道你要执行什么查询。您可以这样做,但很可能您已经知道了:

<?php
$query  = "SELECT name, subject, message FROM contact";
$query2  = "SELECT name, message FROM contact;select name from contact;";
$result = mysql_query($query);
$result2 = mysql_query($query2);
?>

希望有帮助,

Jeffrey Kevin Pry