首先:我对google和stackoverflow进行过研究,但它对我没有帮助。
我是初学者,所以请不要直接因为阅读标题并投票给我而责怪我。 Stackoverflow有时似乎非常积极:(
我正在尝试从PHP执行一个简单的存储过程。 连接数据库有效。
此代码也适用于SQL Server Management Studio中的查询:
Execute SP_TPL_DeleteUser
@ExternalFieldID = 22
关于本手册:PHP Stored Procedures and SQL Server和MSSQL Bind
我构建了这行代码:
$id=22;
$stmt=mssql_init("SP_TPL_DeleteUser", $conn);
mssql_bind($stmt, "@ExternalFieldID", $ExternalFieldID, SQLVARCHAR, false, false, 255);
mssql_execute($stmt);
mssql_free_statement($stmt);
我的输出是:
(!)致命错误:调用未定义的函数mssql_init() 第32行的C:\ Users \ kians_000 \ dev \ traka \ index.php
当然我试过玩,但没有任何作用:( 我会感谢任何提示。
编辑:
我可以用这个连接到DB:
$serverName = "KIAN-PC";
$connectionInfo = array( "Database"=>"T32Database");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn )
{
echo "Connection established.\n";
}
else
{
echo "Connection could not be established.\n";
die( print_r( sqlsrv_errors(), true));
}
但是像这样的简单查询:
$version = mssql_query('SELECT * FROM [T32Database].[dbo].[TUsers]');
$row = mssql_fetch_array($version);
echo $row[0];
生成此输出:
致命错误:在第42行的C:\ Users \ kians_000 \ dev \ traka \ index.php中调用未定义的函数mssql_query()
phpinfo告诉我这个:
SQLSRV
支持sqlsrv支持
指令本地价值主值
sqlsrv.ClientBufferMaxKBSize 10240 10240 sqlsrv.LogSeverity 0 0
sqlsrv.LogSubsystems 0 0 sqlsrv.WarningsReturnAsErrors On On
编辑3: 我试过所有的司机。这是唯一有效的。 也许我的消息来源是错误的。
<?php
//-----------------------------------------------
// Connect to SQL Server DB
//-----------------------------------------------
$serverName = "KIAN-PC";
$connectionInfo = array( "Database"=>"T32Database");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn )
{
echo "Connection established.\n";
}
else
{
echo "Connection could not be established.\n";
die( print_r( sqlsrv_errors(), true));
}
//-----------------------------------------------
// Perform operations with connection.
//-----------------------------------------------
$version = mssql_query('SELECT * FROM [T32Database].[dbo].[TUsers]');
$row = mssql_fetch_array($version);
echo $row[0];
/* Close the connection. */
sqlsrv_close( $conn);
?>
我的输出是:
已建立连接。 (!)致命错误:调用未定义的函数 第42行的C:\ Users \ kians_000 \ dev \ traka \ index.php中的mssql_query()
答案 0 :(得分:2)
而不是绑定尝试将您的过程作为查询调用:
mssql_query('exec SP_TPL_DeleteUser @ExternalFieldID = ' . $ExternalFieldID, $con);
答案 1 :(得分:1)
我把两个不同的司机混在一起。
有mssql和sqlsrv驱动程序。 检查语句是否以mssql_或sqlsrv_开头 我使用MSSQL Express 2012,看起来好像没有使用mssql驱动程序。
现在这里有效(作为一个问候世界):
<?php
//-----------------------------------------------
// Connect to MSSQL-DB
//-----------------------------------------------
$serverName = "KIAN-PC";
$connectionInfo = array( "Database"=>"T32Database");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
//-----------------------------------------------
// Perform operations with connection.
//-----------------------------------------------
if( $client_info = sqlsrv_client_info( $conn)) {
foreach( $client_info as $key => $value) {
echo $key.": ".$value."<br />";
}
} else {
echo "Error in retrieving client info.<br />";
}
/* Close the connection. */
sqlsrv_close( $conn);
?>
感谢大家的帮助!
答案 2 :(得分:0)
如果您正在使用WAMP,请确保已启用mssql模块。如果是,则在上下文菜单中的名称旁边会有一个复选标记。