【问题标题】:How to bind post variables如何绑定帖子变量
【发布时间】:2013-11-25 13:20:54
【问题描述】:

只是一个关于 php 绑定的简单问题

我知道你是否会做类似的事情

$select = update my_table set name ='".$posted_name.'" where id=1;

那是受到sql注入

但是你将如何绑定下面的查询

$select = update my_table set name ='".$posted_name[$a].'" where id=1;

在我的绑定数组中,这就是我绑定任何东西的方式 without [$a]

对于我正在做的第一条语句的任何示例

   $select = update my_table set name =:p_update_name where id=1;

   $bind_update = array('p_update_name' => $t_update_name);

【问题讨论】:

标签: php sql pdo mysqli bind


【解决方案1】:

试试这样:

$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

【讨论】:

  • 您能否尝试在您的答案中涵盖 pdo 和 mysqli 方法。谢谢
【解决方案2】:

您不必使所有名称都相同。

$select = "update my_table set name =:whatever where id=1";
$bind_update = array('whatever' => $random_variable);

会的。所以它可以是你能想到的任何变量。只要它是标量变量

【讨论】:

  • [$a] 我不需要在声明或绑定中包含它吗?
  • 好的我看到你的答案了,所以基本上你绑定$select = update my_table set name ='".$posted_name[$a].'" where id=1;的方式和$select = update my_table set name ='".$posted_name.'" where id=1;是一样的
  • 您的示例中没有绑定
  • 抱歉回复晚了。我更新了我的问题以显示我是如何绑定的,我正在使用数组绑定(oracle),但它的查询没有什么不同,并且编写的函数是在 php 中。
  • 我只能重复我之前所说的:绝对没有理由变量与占位符同名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多