我有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