小编CMR*_*CMR的帖子

PHP PDO ODBC - 数据类型在等于运算符中不兼容

我似乎无法获得一个带参数的简单WHERE子句,我不断收到一条错误消息:

[Microsoft][ODBC SQL Server Driver][SQL Server]The data types varchar(max) and text are incompatible in the equal to operator. (SQLExecute[402] at ext\pdo_odbc\odbc_stmt.c:254)
Run Code Online (Sandbox Code Playgroud)

我以多种不同的方式尝试过此查询,例如

无名:

$query = $DBH->prepare("SELECT TOP 1 * FROM bksb_Resources WHERE ResourceType = ?");
$query->execute( array('assessment') );
Run Code Online (Sandbox Code Playgroud)

未命名并使用bindValue将其设置为字符串

$query = $DBH->prepare("SELECT TOP 1 * FROM bksb_Resources WHERE ResourceType = ?");
$query->bindValue(1, 'assessment', PDO::PARAM_STR);
$query->execute(  );
Run Code Online (Sandbox Code Playgroud)

命名并使用bindParam将其设置为字符串:

$val = 'assessment';
$query = $DBH->prepare("SELECT TOP 1 * FROM bksb_Resources WHERE ResourceType = :myp");
$query->bindParam(':myp', $val, PDO::PARAM_STR);
$query->execute(  );
Run Code Online (Sandbox Code Playgroud)

但无论我怎么做,我总是得到这个错误信息.

有问题的列是类型:varchar(max),因此假设发送的参数是'text'类型,即使我将其指定为字符串值(char,varchar)

我无法更改数据库,因为它是另一个软件. …

php sql odbc pdo

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

jquery克隆元素在变量中被改变

编辑:

现在在jsbin.com/ivukar/10上的工作示例


这是我正在尝试做的事情,总结到核心步骤,没有对你来说毫无意义的所有细节:

  1. 从DOM克隆现有div并将该克隆存储在变量中
  2. 从DOM中删除该div
  3. 将克隆的div附加到DOM中
  4. 更改DOM中div的HTML内容
  5. 删除div并再次插入克隆

现在按照这些步骤,假设我们div的HTML内容是"test",我希望如下:

  1. 变量使div与内容"test"一起存储
  2. Div从DOM中删除
  3. Div附加到内容为"test"的DOM
  4. 页面上的Div改为内容"已更改"
  5. 删除页面上的Div.Div再次使用内容"test"附加到正文,因为它存储在变量中,不应该受到DOM更改的影响

然而,只要我对元素的html内容进行了更改,就会发生这样的事情:例如:$('#element').html('altered');它也会改变变量的内容......

我不明白为什么它会这样做,因为变量只有在将它附加到DOM时才被引用,我不会改变变量的内容......

这是一个JsBin链接,所以你可以看到我的意思.

或者这里是示例代码:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script>
var saved = '';

function my_clone()
{
saved = $('#el').clone();
$('#output').append("<a href='#' onclick='my_remove();'>Remove version on screen</a> ----- This removes any element with the id 'el'<br>");
}

function my_remove()
{

$('#el').remove();
$('#output').append("<a href='#' onclick='my_append();'>Append clone to body</a> ----- This takes the cloned object stored in the variable 'saved' and appends it to …
Run Code Online (Sandbox Code Playgroud)

javascript jquery clone

5
推荐指数
1
解决办法
3330
查看次数

PDO语句提取 - 无法访问空属性

我真的很困惑.

此查询在localhost上完全正常,但在任何实际的实时服务器上都不行.对同一数据库的其他查询起作用,因此连接或pdo扩展名没有任何问题.

基本上这是查询:

$sql = "SELECT * FROM bksb_Resources";
$query = $this->connection->query($sql, array());
Run Code Online (Sandbox Code Playgroud)

query()方法返回PDOStatement对象

然后我调用$this->connection->fetch($query)一个循环,然后循环路由到"连接"对象上的方法:

function fetch_pdo($st)
{
    return $st->fetch();
}
Run Code Online (Sandbox Code Playgroud)

所以基本上它是从一个表中选择所有,然后返回第一行(它是一个循环,但这不是真正相关).

在localhost上,这很好.没问题.

在我的实时服务器上,我得到:

Fatal error: Cannot access empty property in /var/www/html/demo/blocks/elbp/classes/db/MSSQL.class.php on line 652
Run Code Online (Sandbox Code Playgroud)

其中第652行是从上面的fetch_pdo方法返回的.

我在它运行fetch()之前打印出语句,它在两台服务器上都没问题:

PDOStatement Object
(
    [queryString] => SELECT * FROM bksb_Resources
)
Run Code Online (Sandbox Code Playgroud)

我真的没有想法.当其他查询在实时服务器上工作正常时,我无法理解为什么这可以在一台服务器而不是另一台服务器上运行.

(好吧......我说其余的,这本来是一个不同的问题,localhost上的查询返回了正确的结果,并且live上的查询没有返回任何内容,即使我在Management Studio上运行复制/粘贴查询它工作正常. ..但在试图调试我遇到过这个).

有人有任何想法吗?

谢谢

编辑:

打电话给 $this->connection->query($sql, array());

这叫:

/**
 * Run an SQL query and return a statement - to be used for things like selecting
 * @param …
Run Code Online (Sandbox Code Playgroud)

php sql-server pdo

3
推荐指数
1
解决办法
1957
查看次数

标签 统计

pdo ×2

php ×2

clone ×1

javascript ×1

jquery ×1

odbc ×1

sql ×1

sql-server ×1