由于某种原因,当我用双撇号替换撇号时,它将用于文本视图而不是常规文本输入。 (我正在使用phpFusion)。
这是我的HTML代码
<tr class='" . $class_alt . "'>
<td class='first'><input type='text' class='w_focus validate[required] text-input' size='20' name='track' id='race' value='" . $data['track'] . "' /></td>
<td><input type='text' class='w_focus validate[required] text-input' size='1' name='race' id='race' value='" . $data['race'] . "' /></td>
<td><input type='text' class='w_focus validate[required] text-input' size='1' name='turnip_number' id='turnip_number' value='" . $data['turnip_number'] . "' /></td>
<td><input type='text' class='w_focus validate[required] text-input' size='20' name='turnip_horse' id='turnip_horse' value='" . $data['turnip_horse'] . "' /></td>
<td><input type='text' class='w_focus validate[required] text-input' size='3' name='turnip_odds' id='turnip_odds' value='" . $data['turnip_odds'] . "' /></td>
<td><input type='text' class='w_focus validate[required] text-input' size='10' name='turnip_bettype' id='turnip_bettype' value='" . $data['turnip_bettype'] . "' /></td>
<td><input type='text' class='w_focus validate[required] text-input' size='1' name='turnip_special' id='turnip_special' value='" . $data['turnip_special'] . "' /></td>
<td>
<div class='textarea'>
<textarea cols='20' rows='12' name='turnip_reason' id='turnip_reason' class='w_focus validate[required]'>" . $data['turnip_reason'] . "</textarea>
</div>
</td>
<td class='last'>
<div class='send'><span class='button_lnk blue def_link'>
<input type='submit' value='Enter Tip' class='enter_tips' name='enter_tips'/>
</span></div>
</td>
</tr>
我的SQL查询:
$find = "'";
$replace = "''";
$result = dbquery("UPDATE fusion6618n_tips SET turnip_horse='" . str_replace($find, $replace, $_POST['turnip_horse']) . "', turnip_number='" . $_POST['turnip_number'] . "', turnip_odds='" . $_POST['turnip_odds'] . "', turnip_bettype='" . str_replace($find, $replace, $_POST['turnip_bettype']) . "', turnip_special='" . $_POST['turnip_special'] . "', turnip_reason='" . str_replace($find, $replace, $_POST['turnip_reason']) . "' WHERE track='" . $_POST['track'] . "' AND race='" . $_POST['race'] . "'");
它适用于textview(turnip_reason)。
但是,如果我输入文字输入(turnip_horse),然后输入“Sir'n'Sausage”,那么数据库中所有更新的内容都是“Sir”而不是Sir''n''Sausage。
我无法弄清楚如何解决它。
答案 0 :(得分:0)
您已取代逃避&#39;签字,不要加倍。所以你的零件代码应该是:
$find = "'";
$replace = "\'";
因为中间的查询(简化)正在逃避:
UPDATE fusion6618n_tips SET turnip_horse='Sir ''n'' Sausage' WHERE track=''
UPDATE fusion6618n_tips SET turnip_horse='Sir '