我用了以下功能:綁定參數strip out下劃線?
function update_value($table, $field, $value, $type, $where1, $value1, $where2=NULL, $value2=NULL, $where3=NULL, $value3=NULL) {
$rows = array();
global $conn;
connect();
$value1 = "'" . $value1 . "'";
$sql = "UPDATE $table SET $field =? WHERE $where1 = $value1";
$bind1 = "'" . "$type" . "'";
if ($where2 != NULL) {
$value2 = "'" . $value2 . "'";
$sql .= " AND $where2 = $value2";
}
if ($where3 != NULL) {
$value3 = "'" . $value3 . "'";
$sql .= " AND $where3 = $value3";
}
$stmt = $conn->prepare($sql);
$stmt->bind_param($type, $value);
$stmt->execute();
$stmt->close();
$conn->close();
}
...更新表的用戶名字段(確保它是通過上述功能更新前的字符串)。我嘗試使用字符串後跟下劃線進行更新,但是當它出現在表格中時,下劃線消失了。
我是新來的綁定參數,是否有某些東西被剝去?如果是這樣,我想知道到底是什麼讓我可以使用preg_match捕捉它們,然後更新並提醒用戶。
*?「的確結合PARAM帶了下劃線」 * - * 「我試着更新一個字符串後跟一個下劃線,但是當它出現在表格中時,下劃線已經消失了。」* - 你問題的標題應該更像*「爲什麼綁定參數去掉下劃線?」* –
綁定doesn'不要改變你提交的數據。如果你以前強調過,他們會在那之後。但是,由於您將「外部」數據直接放入查詢字符串中,因此您仍然很容易受到[sql注入攻擊](http://bobby-tables.com)的攻擊。 –
該功能僅適用於我。在將數據放入函數之前,我會對數據進行清理。所以它不應該刪除下劃線?任何想法爲什麼會這樣? – thinkofacard