PDO准备好的更新声明无法正常工作

时间:2015-12-30 08:41:12

标签: php mysql pdo

这是我的PHP代码:

<button id="edit">Edit</button>
<li data-identifier="4.3e43f44714869abce3fabc5">
  <input class="edit-link" data-meta="internal" data-tempurl="/internal-page.html" type="text" value="Stöd">
</li>
<li>
  <input class="edit-link" data-meta="external" type="text" value="Link">
  <input class="edit-url" type="text" data-tempurl="www.link.se" value="www.link.se">
</li>
<li>
  <input class="edit-link" data-meta="external" type="text" value="link2">
  <input class="edit-url" type="text" data-tempurl="www.link2.se" value="www.link2.se">
</li>
<li>
  <input class="edit-link" data-meta="external" type="text" value="link3">
  <input class="edit-url" type="text" data-tempurl="www.lin3k.se" value="www.link3.se">
</li>

这就是我在班上调用函数的方法:

public function update($table,$fields_and_values,$condition_field,$condition_field_value)
{
    $query="UPDATE $table SET ";
    foreach($fields_and_values as $field=>$value) $query.=($field."=:".$field." ,");
    $query.=" ";
    $query=str_replace(", "," WHERE ",$query);
    $query.=($condition_field."='".$condition_field_value."'");
    echo $query;
    $stmt=$this->conn->prepare($query);
    foreach($fields_and_values as $field=>$value) $stmt->bindParam(":".$field,$value);
    $stmt->execute();
}

断开连接等其他功能并不重要!它们正常工作。
我的问题是,当执行此命令时,用户名密码都将变为123456! 这就是我从 $db=new db_connection('localhost','root','','maps'); $db->connect(); $arr=array('username'=>'testfromnewclass3','password'=>'123456'); $db->update('users',$arr,'username','term'); $db->disconnect(); 得到的:

echo $query

我的功能有问题吗?如果有,我该如何解决?

1 个答案:

答案 0 :(得分:1)

使用AssetManager am = context.getAssets(); InputStream is = am.open("test.txt"); 而不是InputStream is = getResources().openRawResource(R.raw.test);

Check this了解$stmt->bindValue($field, $value);$stmt->bindParam(":".$field,$value);

之间的区别
相关问题