小编Lit*_*eeX的帖子

如何使用sqlsrv和"?"在php中执行存储过程 样式参数

我已经查看了其他几个看起来与问题相同的问题(来自标题).但是,我的情况有点不同.

以下工作(即我获得"成功",我的数据库执行我在运行给定变量的过程时所期望的):

$sql = "MyDB.dbo.myProcedure {$var1}, {$var2}, {$var3}";
$result = sqlsrv_query($myConn, $sql);
if (!$result) {
    echo 'Your code is fail.';
}
else {
    echo 'Success!';
}
Run Code Online (Sandbox Code Playgroud)

我想通过使用参数创建SQL字符串来避免(或减少)SQL注入的可能性.例如:

$sql = "select * from aTable where col1 = ? AND col2 = ?";
$result = sqlsrv_query($myConn, $sql, array($var1, $var2));
//please note. This code WILL work!
Run Code Online (Sandbox Code Playgroud)

但是,当我使用存储过程执行此操作时,它会失败.它失败,没有通过sqlsrv_errors()报告错误,没有在数据库中采取任何操作,和$result === false.

需要说明的是,以下内容失败:

$sql = "MyDB.dbo.myProcedure ?, ?, ?";
$result = sqlsrv_query($myConn, $sql, array($var1, $var2, $var3));
Run Code Online (Sandbox Code Playgroud)

同样,以相同方式创建的prepare/execute语句也将失败:

$sql = "MyDB.dbo.myProcedure ?, ?, ?";
$stmt …
Run Code Online (Sandbox Code Playgroud)

php sql stored-procedures sql-server-2005 sqlsrv

10
推荐指数
2
解决办法
3万
查看次数

可以将演示数据存储在数据库中吗?

我将在网页中显示数据库(SQL SERVER 2005)表中的行.这些行包含statusID(外键),StatusID由Status表进一步定义(例如id,name,modifiedDate).

各种状态应以不同的方式显示(假设它们只是具有不同的背景颜色).

我使用php来查询数据库,并构建网页表.在构建表时,我将基于该行的状态将css类应用于元素.

我有至少2个选项来做到这一点:

  1. 在php中定义代码逻辑来处理它,如果在数据库中更改了状态,我将不得不更改代码.

  2. 将"类"存储在数据库中,只需应用已存储的类.

后一种选择对我来说似乎更好,但我不确定将表现数据嵌入数据库是一个糟糕的设计选择.这将是我创建几个Intranet实用程序的基础,我想从右脚开始.

css php sql database sql-server-2005

8
推荐指数
1
解决办法
332
查看次数

如何将背景颜色(或自定义css类)应用于网格中的列 - ExtJs 4?

看起来应该这么简单,但我根本无法完成这项工作(我甚至不需要动态完成).例如,假设我有一个简单的2列网格设置,如下所示:

    columns : [       
       {header: 'USER', dataIndex: 'firstName', width:70, cls: 'red'},
       {header: 'CATEGORY', dataIndex: 'category', width:100}
    ]
Run Code Online (Sandbox Code Playgroud)

cls: 'red'属性仅影响标题,而不影响实际列.我在其他地方看到我应该使用自定义渲染器(也许),但如果我尝试类似的东西:

{header: 'USER', dataIndex: 'firstName', width:70, 
     renderer: function(value) {
         this.addCls('red');
         return value;
    }
 }
Run Code Online (Sandbox Code Playgroud)

我仍然得到无聊的白色背景.我也看到人们使用渲染器函数定义,如下所示:function(value, metadata, record, rowIndex, colIndex, store)但是当我使用一个alert()测试输入参数时我会得到undefined除了之外的一切value,这让我相信这可能只适用于ExtJs 4之前的版本.

我也尝试'<span class="red">' + value + '</span>'在渲染器函数中返回类似的内容,但这只突出显示了文本,而不是更改列的整个背景.

我不想覆盖默认的Ext css类,因为我想将背景颜色应用于应用程序中的特定网格,而不是全部.

此外,所讨论的网格的所有列可能具有不同的颜色(请注意,在示例中,我仅将类添加到第一列).

假设在我的css文件中red定义.red {background:#FF0000;}.

css grid extjs4

5
推荐指数
2
解决办法
2万
查看次数

如何使用 php、SQL SERVER 2005 从 INSERT 语句返回插入的行?

在 INSERT 语句之后插入行的最简单/最有效的方法是什么?

我很确定我可以这样做:

$aQuery = "INSERT into myTable (a, b, c) VALUES (1, 'Hello', 'Goodbye')";
//the IDENTITY coloumn in myTable is named id
$result = sqlsrv_query($myConn, $aQuery );
if ($result) {
    $res = sqlsrv_query('SELECT LAST_INSERT_ID()');
    $row = sqlsrv_fetch_array($res);
    $lastInsertId = $row[0];
    $subQuery = "SELECT * FROM myTable where id = {$lastInsertId}";
    $subResult = sqlsrv_query($myConn, $subQuery);
    if ($subResult) {
        while($subrow = sqlsrv_fetch_array($subResult)) {
            echo($subrow ['id'] . ', '.
                 $subrow ['a'] . ', '.
                 $subrow ['b']);  //etc... …
Run Code Online (Sandbox Code Playgroud)

php sql-server sql-server-2005

2
推荐指数
1
解决办法
3050
查看次数