Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何绑定post变量_Php_Sql_Pdo_Mysqli_Bind - Fatal编程技术网

Php 如何绑定post变量

Php 如何绑定post变量,php,sql,pdo,mysqli,bind,Php,Sql,Pdo,Mysqli,Bind,只是一个关于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; 在我的绑定数组中,这就是我在没有[$a] 对于我正在做的第一个陈述的任何例子 $select = update m

只是一个关于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;
在我的绑定数组中,这就是我在没有
[$a]

对于我正在做的第一个陈述的任何例子

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

   $bind_update = array('p_update_name' => $t_update_name);
试着这样做:

$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();

你不必让所有的名字都相等

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

行。所以它可以是你能想到的任何变量。只要它是标量变量,那么在PDO中就可以执行
$stmt->bindParam(1,$name[$a])
?谢谢@YourCommonSense,但它没有显示带有
$posted\u name[$a]
的a方法。它只包含一个标准语句。带有$posted_name[$a]的方法与准备好的语句完全无关。请尝试在回答中同时包含pdo和mysqli方法。谢谢关于
[$a]
我不需要在语句或绑定中包含它吗?好的,我看到了你的答案,所以基本上你绑定的方式是
$select=update my_table set name='''.$posted_name[$a].'',其中id=1
$select=updatemy_table set name='“$posted_name.”相同,其中id=1示例中没有绑定对不起,回复太晚了。我更新了我的问题,以显示我是如何绑定的,我使用的是数组绑定(oracle),但它的查询没有什么不同,函数是用php编写的。我所能做的只是重复我之前说过的:绝对没有理由让变量与占位符同名。