【问题标题】:bindparm not set anything [closed]bindparm 没有设置任何东西[关闭]
【发布时间】:2014-06-19 01:56:05
【问题描述】:

这是我的问题。 我在 tsql 中尝试 bindparam 但没有发生。

   $sql="INSERT INTO `digishop`.`sell_table` (`Id`, `Time`, `GroupId`, `Amount`, `ProductId`) VALUES ('11', ':time', ':groupid', '1000', '1');"; 
   $doer = new doer();
   $doer->ping();
   $result=$doer->temp->prepare($sql);
   $temp=1;
   $result->bindparam(':time',$temp);
   $temp1=1450;
   $result->bindparam(':groupid',$temp);
   $doer->temp=$result;

但在数据库中:

 Full texts     Id  Time    GroupId     Amount  ProductId
                11  0   :goroid     1000    1

见:D 我该如何解决这个问题?

【问题讨论】:

  • 去掉':time', ':goroid',的引号
  • 我使用 pdo 并非不可能
  • PDO 默认不报错。你的未公开班级会处理这个问题吗?
  • 未报告任何错误且查询工作但 bindparm 不起作用
  • 我不敢相信。您正在绑定不存在的参数(正如 Fred 指出的那样)。你应该得到一个错误。

标签: php pdo sqlbindparameter


【解决方案1】:
$sql="INSERT INTO `digishop`.`sell_table` (`Id`, `Time`, `GroupId`, `Amount`, `ProductId`) VALUES ('11', ':time', ':goroid', '1000', '1');"; 

改成

$sql="INSERT INTO `digishop`.`sell_table` (`Id`, `Time`, `GroupId`, `Amount`, `ProductId`) VALUES ('11', :time, :groupid, '1000', '1');"; 

还有

$result->bindparam(':groupid',$temp);

改成

$result->bindparam(':groupid',$temp1);

【讨论】:

  • 那是我过去复制的错过,但我解决了我的问题 tnq 但这不是问题
  • (我刚刚看到标识符中的拼写错误在 sql 中您使用的是:goroid,但在 bindig 中您使用的是:groupid
  • 如果问题仍然无法解决
  • 您在绑定参数的查询中删除了'
  • 并且...从数据库中删除 ,,broken'' 记录并检查是否正确添加了新记录
猜你喜欢
  • 1970-01-01
  • 2012-07-26
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 2013-12-30
相关资源
最近更新 更多