我有new_supplier_request如下表:mysql:撇號不從數據庫中的varchar列讀取?
Id | ref | User | Manager (Varchar)
1 12 James Henry O'Brien
我也有我的internal_users表:
Id | User_firs_name | user_last_name(Varchar)
1 Henry O'Brien
我使用下面的MySQL查詢給經理的權限(誰是登錄)到如果在我的new_supplier_request表的manager列中出現管理員名稱,則查看一些內容
$_SESSION['username'] = internal_users.user_first_name
$_SESSION['username2'] = internal_users.user_last_name
$user = $_SESSION['username']." ".$_SESSION['username2'];
$sql34 = "select * from new_supplier_request, internal_users where new_supplier_request.status!= 'complete' and new_supplier_request.action_taken ='none' AND new_supplier_request.user_id = internal_users.user_id AND requestee_manager = '$user'";
$result = $conn->query($sql34);
由於某種原因,如果姓氏不包含撇號,這可以正常工作,但由於某些原因,當我檢查我的查詢時,此經理的姓氏是O'Brien,因此無法閱讀名稱中的撇號,如果我把亨利的姓改成詹姆斯那樣的話,那麼它就會起作用。有人能解釋我做錯了什麼嗎?由於
使用'mysqli_real_escape_string' – prava 2015-03-13 09:35:52
您使用MySQLi的,所以要學會使用綁定變量....然後你不必擔心轉義特殊字符,如引號 – 2015-03-13 09:37:27
這時候,你不」,你會得到什麼使用預先準備好的語句 – 2015-03-13 09:55:04