在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP  數(shù)據(jù)庫/ sql語句中出現(xiàn)單引號導(dǎo)致報錯

sql語句中出現(xiàn)單引號導(dǎo)致報錯

sql語句

$sql_insert = "insert into tabs(name,singer,address) values ('$name','$singer','$songaddress')";
$res_insert = $conn->query($sql_insert);

問題

我的$name、$singer、$songaddress 變量中會出現(xiàn)單引號,導(dǎo)致引號之間相互沖突,這時sql的語句無法執(zhí)行,請教大神如何解決?

回答
編輯回答
嘟尛嘴

addslashes函數(shù)了解一下

2018年2月28日 23:52
編輯回答
赱丅呿

sql中,用兩個個單引號,表示一個不是字符邊界的單引號:

select 'fff''fff' ff
2018年3月19日 00:53
編輯回答
寫榮

不要拼接SQL了。容易導(dǎo)致SQL注入。
使用PDO對象來操作數(shù)據(jù)庫,使用預(yù)處理語句來處理你的SQL防止SQL注入:

/* 通過綁定的 PHP 變量執(zhí)行一條預(yù)處理語句  */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();

http://php.net/manual/zh/clas...

2018年5月16日 01:36
編輯回答
法克魷

將你變量$name、$singer、$songaddress 中的字符串中的單引號

  1. 或加上轉(zhuǎn)義字符,變成\'。
  2. 或者在變量中使用兩個單引號替換原來的一個,變成''
  3. 或者對變量直接使用 addslashes函數(shù)完成特殊字符轉(zhuǎn)義。
2017年11月13日 23:21
編輯回答
真難過

用轉(zhuǎn)義符+雙引號,如:
$sql_insert = "insert into tabs(name,singer,address) values (\"$name\",\"$singer\",\"$songaddress\")";

2018年2月5日 09:13