我正在尝试在内容表中插入值.如果我在VALUES中没有PHP变量,它可以正常工作.当我将变量$type放在VALUES中时,这不起作用.我究竟做错了什么?
$type = 'testing';
mysql_query("INSERT INTO contents (type, reporter, description)
VALUES($type, 'john', 'whatever')");
Run Code Online (Sandbox Code Playgroud) 在我使用的旧服务器上,我无法使用预准备语句,我目前正在尝试完全转义用户输入,然后再将其发送到MySQL.为此我使用PHP函数mysql_real_escape_string.
由于这个函数没有逃脱MySQL通配符%和_我也用它addcslashes来逃避这些.
当我发送类似的东西:
test_test " '
Run Code Online (Sandbox Code Playgroud)
到数据库然后读回数据库显示:
test\_test " '
Run Code Online (Sandbox Code Playgroud)
看着这个我无法理解为什么_有一个前面的反斜杠但是'和'没有.因为它们全部用\ _确定_'并且"应该都显示相同,即所有都具有转义字符可见或一切都没有可见.
是否会自动筛选转义
有谁能解释一下?
这不起作用
$sql = 'SELECT * FROM `users` WHERE username LIKE \'%{?}%\' ';
Run Code Online (Sandbox Code Playgroud)
警告:mysqli_stmt :: bind_param():变量数与第1行/home/rgero/public_html/php/searchadmins.php中预准备语句中的参数数量不匹配
这个也不起作用
$sql = 'SELECT * FROM `users` WHERE username LIKE %{?}% ';
Run Code Online (Sandbox Code Playgroud)
致命错误:错误的SQL:SELECT*FROM usersWHERE用户名LIKE%{?}%错误:第1行/home/rgero/public_html/php/searchadmins.php中的0
我该怎么做?我正在尝试搜索在您输入表单时更新结果的玩家功能,例如谷歌在您输入时已经显示答案的方式.如果你输入dm,我需要输入用户名Admin,以便在包含"dm"的其他用户名中显示它.它也应该不区分大小写