我有连字符的查询问题。连字符字符的php mysql查询
$user = "test-user";
$q = @mysql_query("SELECT id FROM table WHERE user='$user'");
echo mysql_error(); //no error message
测试用户记录在表中,但查询结果为空。另外mysql错误信息是空的。哪里不对?编辑: 谢谢你的答案。我向大家道歉。我发现问题,我现在看到问题不在查询中。问题来自正则表达式。
if (preg_match("/^[a-z0-9\-]+$/i", $user)) //added \- to regex for dash
{
$q = @mysql_query("SELECT id FROM table WHERE user='$user'");
}
一两件事 - 不使用'@'来取消错误信息从'mysql_query';另一个 - 你应该看看使用mysqli_ *,因为mysql_函数已被弃用。 – andrewsi
为您的表格添加样本日期,这不起作用。错误非常小 - 它与连字符无关。 – user4035
它可能只是你的例子,但'table'是MySQL中的一个保留字,因此需要反复打勾。但是,你应该回到所有的表格和列名称的习惯过程。 – JamesG