GVKun编程网logo

PDO和Microsoft SQL:必须声明表变量“ P1”。(sql必须声明标量变量是什么意思)

26

如果您对PDO和MicrosoftSQL:必须声明表变量“P1”。感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于PDO和MicrosoftSQL:必须声明表变量“P1”。的

如果您对PDO和Microsoft SQL:必须声明表变量“ P1”。感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于PDO和Microsoft SQL:必须声明表变量“ P1”。的详细内容,我们还将为您解答sql必须声明标量变量是什么意思的相关问题,并且为您提供关于### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 &qu...、2022年Microsoft Office 365、Microsoft 365商业版比现在更、asp.net – 错误:必须声明标量变量“@data”、asp.net-mvc – 在Mono 2.4上使用Microsoft Data Entity Framework和Microsoft MVC的有价值信息。

本文目录一览:

PDO和Microsoft SQL:必须声明表变量“ P1”。(sql必须声明标量变量是什么意思)

PDO和Microsoft SQL:必须声明表变量“ P1”。(sql必须声明标量变量是什么意思)

我试图在PDO中使用绑定从Microsoft SQL数据库中选择一些条目。我使用的代码看起来与文档中的代码相似。但是,当我运行它时,出现以下警告:

警告:PDOStatement :: execute()[pdostatement.execute]:SQLSTATE
[42000]:语法错误或访问冲突:1087 [Microsoft] [SQL Native Client] [SQL Server]必须声明表变量“
@ P1”。(第40行上的(长文件路径)中的(SQLExecute [1087]在ext \ pdo_odbc \ odbc_stmt.c:254处)

以下是相关代码:

$table = "[User Site]";$user = "demo";$sql = "SELECT * FROM ? WHERE user=''?''"; $sth = $db->prepare($sql);$sth->bindValue(1,  $table, PDO::PARAM_STR);$sth->bindValue(2, $user, PDO::PARAM_STR);$sth->execute(); //                         <-- line 40$data = $sth->fetch(PDO::FETCH_ASSOC);

这可能是相关的。当我尝试使用命名参数标记(:table,:user)而不是问号时,我得到了:

警告:PDOStatement :: bindValue()[pdostatement.bindvalue]:SQLSTATE
[HY093]:无效的参数编号:在第39行的(长文件路径)中未定义参数

为什么不喜欢我准备好的陈述?

答案1

您无法在SQL中将参数绑定到表名。在任何语言,任何数据库中都是如此。

您必须在之前将表名称插入查询字符串中prepare()

此外,即使参数占位符是字符串或日期值,也不应将其置于引号内。引号内的参数占位符被解释为文字字符串。否则,您将如何输入文字问号?

这是我的写法:

$table = "[User Site]";$user = "demo";$sql = "SELECT * FROM $table WHERE user=?"; $sth = $db->prepare($sql);$sth->execute(array($user));$data = $sth->fetch(PDO::FETCH_ASSOC);

我不介意使用bindParam()bindValue()。通常,将数组参数中的参数值传递给会更容易execute()

### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 &qu...

### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 &qu...

(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,【??】,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 "@P23@P24"。
### The error may involve com.foen.cloud.mapping.CustMemoMapper.insert-Inline
### The error occurred while setting parameters
### SQL: insert into ERP_BASIC_CUS_Memorandum(djno,custno,custname,sales_company_projectno,Projectname,Contact_phone,contractno,Contact,Contact_account,ywy,qyjl,kfzy,qht,shop_number,project_area,qyzzwj,if_idcard,sales_area,hb,province,prefecture_level_city,county_level_city,Delivery_address,aluminum_lb,aluminum_fs,weight_jsfs,aluminum_lb_shop,pj_price_type,if_deposit,contract_dt,if_js_days,receivment_no,ztz,bhm,ssm,fwbz,gsc,zzm,bz_number,qtyq,bzfs,all_number,out_day,if_stop,begin_date,end_date,validity,ex_ysdm,kaifa_company,yfzf,wd_xl,lrj,lrj_price,cust_class,modifier,modify_dt,oper,date1)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,??,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 "@P23@P24"。
; uncategorized SQLException for SQL []; SQL state [S0002]; error code [137]; 必须声明标量变量 "@P23@P24"。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 "@P23@P24"。

2022年Microsoft Office 365、Microsoft 365商业版比现在更

2022年Microsoft Office 365、Microsoft 365商业版比现在更

2022年Microsoft Office 365、Microsoft 365 现在更贵

微软已宣布 Microsoft 365 和 Office 365 的商业和商业版本的价格上涨,该公司强调教育和消费者不会发生任何变化。

不过,新价格也将在六个月后生效,微软表示,它们不仅适用于美国,而且适用于世界各地,每个地区都会有明显的调整。

然而,值得一提的是,这是微软 10 年来(自 Office 365 首次亮相以来)第一次真正提高生产力套件的价格。

“我们宣布对 Microsoft 365 的商业定价进行更改——这是自十年前我们推出 Office 365 以来的第一次实质性定价更新。这一更新的定价反映了我们在过去 10 年中为客户提供的价值增加,”Microsoft 365 企业副总裁 Jared Spataro 解释说。

2022年Microsoft Office 365、Microsoft 365商业版比现在更贵

涨价只针对商业和商业用户

宣布的提价针对以下产品:

• Microsoft 365 商业基础版(每位用户 5 美元到 6 美元)

• Microsoft 365 商业高级版(从 20 美元到 22 美元)

• Office 365 E1(从 8 美元到 10 美元)

• Office 365 E3(从 20 美元到 23 美元)

• Office 365 E5(从 35 美元到 38 美元)

• Microsoft 365 E3(从 32 美元到 36 美元)

自 2020 年初以来,由于全球健康问题,Microsoft 365 服务的采用率猛增,整个世界都在过渡到远程工作并拥抱产品,这些产品使他们即使在安全的家中也能保持生产力。

微软也承认像 Microsoft Teams 这样的平台在采用方面取得了巨大的成功,该公司甚至转向了更积极的优化,以确保所有这些服务对世界各地的订阅者保持在线状态,特别是考虑到某些地区的活跃用户数量不断增加地区。

asp.net – 错误:必须声明标量变量“@data”

asp.net – 错误:必须声明标量变量“@data”

当执行到达cmd.ExecuteNonQuery()时,我收到一个错误,其中说必须声明标量变量:

OleDbCommand cmd = new OleDbCommand();
cmd.Connection = Connection;
cmd.CommandTimeout = 0;

string commandText = "update groups set subjectline ='" +    txtSubjectLine.Text + "',data= @data where groupid = " + ddlGroup.SelectedItem.Value + " ";
cmd.CommandText = commandText;
cmd.CommandType = CommandType.Text;

cmd.Parameters.Add("@Data",OleDbType.VarBinary);
cmd.Parameters["@Data"].Value = binarydata;               
cmd.ExecuteNonQuery();

解决方法

更换

string commandText = "update groups set subjectline ='" +    txtSubjectLine.Text + "',data= @data where groupid = " + ddlGroup.SelectedItem.Value + " ";

string commandText = "update groups set subjectline ='" +    txtSubjectLine.Text + "',data= ? where groupid = " + ddlGroup.SelectedItem.Value + " ";

也就是说,将“@data”替换为“?”在命令文本中.这是使用OleDbCommand指定参数占位符的方法.

这是编辑过的原文:

OleDbCommand cmd = new OleDbCommand();
cmd.Connection = Connection;
cmd.CommandTimeout = 0;

cmd.CommandText = "update groups set subjectline ='" + txtSubjectLine.Text + "',data = ? where groupid = " + ddlGroupSelectedItem.Value;
cmd.CommandType = CommandType.Text;

cmd.Parameters.Add("p1",OleDbType.VarBinary);
cmd.Parameters["p1"].Value = binarydata;

cmd.ExecuteNonQuery();

asp.net-mvc – 在Mono 2.4上使用Microsoft Data Entity Framework和Microsoft MVC

asp.net-mvc – 在Mono 2.4上使用Microsoft Data Entity Framework和Microsoft MVC

我在Ubiquity网站托管服务上使用Mono 2.4.

我创建了一个简单的MVC tutioal applciation,链接了here,并验证它使用了所有Microsoft工具.

接下来,应用程序更新为指向在我的Ubiquity主机上运行的MysqL服务器数据库.该应用程序在基于Microsoft的计算机上运行良好.

现在,我正在尝试将应用程序部署到Ubiquity上的单声道服务器.

我设置System.Web.MVC,因此它将copyLocal = true.

我将应用程序部署到单声道服务器.

我收到此错误:

描述:解析为此请求提供服务所需的资源时出错.检查您的源文件并对其进行修改以修复此错误.

分析器错误消息:程序集System.Data.Entity,版本= 3.5.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089未找到
版本信息:单声道版本:2.0.50727.1433; ASP.NET版本:2.0.50727.1433

我猜这个问题可能是……

A)单声道不支持实体框架.我需要使用Microsoft Data Entity Framework之外的其他东西.

B)单声道版本的System.Data.Entity的公钥令牌不是“b77a5c561934e089”.

C)还有其他事情发生.

我尝试为System.Entity.Data dll设置copyLocal = true.因此,部署到我的单声道服务器的Microsoft版本的DLL.我怀疑这是合法的.无论如何,这只会产生以下错误:

Got a SIGSEGV while executing native code. This usually indicates
a Fatal error in the mono runtime or one of the native libraries
used by your application.

有人可以确认可以在Mono上使用Microsoft Entity Framework吗?根据上面链接的Microsoft MVC教程中的这个评论,我可能会迁移远离Microsoft Entity Framework.

“The ASP.NET MVC framework is not tied to the Microsoft Entity Framework. You can create >your database model classes by taking advantage of a variety of Object Relational Mapping >(OR/M) tools including LINQ to sql,Subsonic,and NHibernate.”

但是,为了保持一致性,我想在单声道上使用Microsoft Entity Framework,如果可能的话.

解决方法

您还应该为System.Data.Entity程序集设置copyLocal = true.您注意到您复制了System.Web.MVC local,但从未提及您在本地复制了System.Data.Entity.您可能还需要复制System.Data.Entity所依赖的任何不属于Mono的本地程序集.

今天关于PDO和Microsoft SQL:必须声明表变量“ P1”。sql必须声明标量变量是什么意思的讲解已经结束,谢谢您的阅读,如果想了解更多关于### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 &qu...、2022年Microsoft Office 365、Microsoft 365商业版比现在更、asp.net – 错误:必须声明标量变量“@data”、asp.net-mvc – 在Mono 2.4上使用Microsoft Data Entity Framework和Microsoft MVC的相关知识,请在本站搜索。

本文标签: