运行 多个 SQL 服务器查询 php
Run multiple SQL Server queries in php
我想在 php 中 运行 几个 SQL 服务器查询,但他不想接受我的请求。
这是我的 php 脚本:
<?php
error_reporting(0);
$serverName = "SERVERNAME";
$connectionInfo = array( "UID"=>"Username", "PWD"=>"password", "Database"=>"databasename", "MultipleActiveResultSets"=>true);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn == false ) {
die( print_r( sqlsrv_errors(), true));
}
$sql = "INSERT INTO TABLE (column) VALUES (?)";
$tsql = "INSERT INTO TABLE_NEW(column, column, column) Values (?, 'INSERT', 'WEBSERVER')";
$params = array($_POST["addSomething"]);
$stmt = sqlsrv_query( $conn, $sql, $params, $tsql, $params);
if( $stmt == false ) {
die(print_r( sqlsrv_errors(), true));
}
else
{
echo '<script language="javascript">';
echo 'alert(Alert what Happend!)'; //not showing an alert box.
echo '</script>';
}
sqlsrv_close($conn);
?>
我把私有数据拿出来,换成随机的名字。我很高兴能得到任何帮助。
您不能将多个语句传递给 sqlsrv_query()。在您的情况下,您有两个选择:
- 生成一个复杂的 T-SQL 语句。在这种情况下,占位符的数量必须与传递的参数数量匹配。
- 分别执行每条语句
复杂语句:
<?php
...
$sql = "
INSERT INTO TABLE (column) VALUES (?);
INSERT INTO TABLE_NEW(column, column, column) Values (?, 'INSERT', 'WEBSERVER')
";
$params = array(
$_POST["addSomething"],
$_POST["addSomething"]
);
$stmt = sqlsrv_query($conn, $sql, $params);
if ($stmt === false ) {
# Your code here
} else {
# Your code here
}
...
?>
备注:
PHP SQL 服务器的驱动程序支持多个结果集。如果你使用一个复杂的语句并且你的一个或多个语句是 SELECT
语句,你需要调用 sqlsrv_next_result() 激活下一个结果(默认情况下第一个结果是激活的)。
我想在 php 中 运行 几个 SQL 服务器查询,但他不想接受我的请求。 这是我的 php 脚本:
<?php
error_reporting(0);
$serverName = "SERVERNAME";
$connectionInfo = array( "UID"=>"Username", "PWD"=>"password", "Database"=>"databasename", "MultipleActiveResultSets"=>true);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn == false ) {
die( print_r( sqlsrv_errors(), true));
}
$sql = "INSERT INTO TABLE (column) VALUES (?)";
$tsql = "INSERT INTO TABLE_NEW(column, column, column) Values (?, 'INSERT', 'WEBSERVER')";
$params = array($_POST["addSomething"]);
$stmt = sqlsrv_query( $conn, $sql, $params, $tsql, $params);
if( $stmt == false ) {
die(print_r( sqlsrv_errors(), true));
}
else
{
echo '<script language="javascript">';
echo 'alert(Alert what Happend!)'; //not showing an alert box.
echo '</script>';
}
sqlsrv_close($conn);
?>
我把私有数据拿出来,换成随机的名字。我很高兴能得到任何帮助。
您不能将多个语句传递给 sqlsrv_query()。在您的情况下,您有两个选择:
- 生成一个复杂的 T-SQL 语句。在这种情况下,占位符的数量必须与传递的参数数量匹配。
- 分别执行每条语句
复杂语句:
<?php
...
$sql = "
INSERT INTO TABLE (column) VALUES (?);
INSERT INTO TABLE_NEW(column, column, column) Values (?, 'INSERT', 'WEBSERVER')
";
$params = array(
$_POST["addSomething"],
$_POST["addSomething"]
);
$stmt = sqlsrv_query($conn, $sql, $params);
if ($stmt === false ) {
# Your code here
} else {
# Your code here
}
...
?>
备注:
PHP SQL 服务器的驱动程序支持多个结果集。如果你使用一个复杂的语句并且你的一个或多个语句是 SELECT
语句,你需要调用 sqlsrv_next_result() 激活下一个结果(默认情况下第一个结果是激活的)。