您好我需要向mysql请求获取一些数据,其中提交的名称= $ letter 但变量$ letter可能包含' 我的问题是我试着用这个:
$letter = mysqli_real_escape_string($conn,strtolower($letter));
$us = $conn->query("SELECT id FROM singers where trim(LOWER(name)) = '".$letter."'");
我的问题在于,如果$ letter是我的传奇,在执行此行之后它就变成了我的传奇,因此无法在数据库中找到它,因为在数据库中它是'存储为我的传奇 我如何解决这个问题并获得正确的结果。
echo $letter;
$letter = mysqli_real_escape_string($conn,strtolower($letter));
echo $letter;
RESULT
我'
I \'米
答案 0 :(得分:1)
你使用
的原因trim
中的 LOWER
和column name
"SELECT id FROM singers where trim(LOWER(name)) = '".$letter."'" //why trim and LOWER
使用此
"SELECT id FROM singers where name = '".$letter."'"
也可以尝试这个
$letter = mysqli_real_escape_string($conn,strtolower($letter));
$sql = "SELECT id FROM singers where name = '".$letter."'";
// echo $sql; die; print this and run in phpmyadmin to check
$us = $conn->query($sql);
if ($us !== false) {
echo 'done';
}
else{ die('failed!' . mysqli_error($conn));}
答案 1 :(得分:0)