0
以下是情況。我有一個像form
面對逃避反斜槓繼續堆積的情況
<form id="myform">
<input type="text" name="some_column_name">
<input type="text" name="some_other_column_name">
</form>
是,在本質上,在數據庫中更新行。該數據庫是「裝載」到頁面上作爲JSON
像
<script type="text/javascript">
rows = <?php echo json_encode($allRows); ?>;
</script>
和當用戶點擊的形式被填充有從數據庫(MySQL的)相應的信息,其中用戶可以對其進行更新的頁面上的項目並且更新將被提交給數據庫。
問題與撇號和可能的其他字符。被輸入到數據庫就像
下面的文本是一些文本
成爲
這裏\的一些文字
當它被裝回input
s在頁面上。
我來添加和更新到數據庫程序
/* Note: Have to break up prepare statement because https://core.trac.wordpress.org/ticket/12819 */
$addQuery = $wpdb->prepare("INSERT INTO projs (compname,projname,imageurl,sumsmall,sumfull,results,caseid=" . $caseid . ",hide) VALUES (%s,%s,%s,%s,%s,%s,%d,%d)",
array($compname, $projname,$imageurl,$sumsmall,$sumfull,$results,$hide));
$message .= $wpdb->query($addQuery)
? 'Successfully added project to the database.'
: 'Error occurred when trying to add project to database: ' . $wpdb->last_error;
和
/* Note: Have to break up prepare statement because https://core.trac.wordpress.org/ticket/12819 */
$updateQuery = $wpdb->prepare("UPDATE projs SET compname=%s,projname=%s,imageurl=%s,sumsmall=%s,sumfull=%s,results=%s,caseid=" . $caseid . ",hide=%d WHERE id=%d",
array($compname, $projname, $imageurl, $sumsmall, $sumfull, $results, $hide, $id));
$message .= $wpdb->query($updateQuery) !== false
? 'Successfully updated project.'
: 'Error occurred when trying to update project in database: ' . $wpdb->last_error;
break;
,我有一種感覺,WordPress的的$wpdb->prepare
被搞砸了的東西或者說我誤用或東西。
您的PHP可能打開了'magic_quotes_gpc'選項,它會爲輸入添加斜線。把它關掉。 – Barmar