我在从SQL中获取数据时遇到了一些问题。
当我使用以下声明时,它工作正常
$sql = 'SELECT `Name`, `Des`, `Url`, `about`, `date` FROM `data` where name = \'facebook\'';
$retval = mysql_query( $sql, $conn );
当我使用参数名称使用相同名称时,我遇到了一些问题,我使用的代码是
$name = $_GET['name'];
$sql = 'SELECT `Name`, `Des`, `Url`, `about`, `date` FROM `data` where name = \'$name'';
$retval = mysql_query( $sql, $conn );
我也试过连接像\'facebook\'
$name1 = "\'".$name . " \'"; but it is also not working .
答案 0 :(得分:3)
使用Double quotes
,这样您就不需要转义任何单引号。
$sql = "SELECT Name, Des, Url, about, date
FROM data
where name = '$name'";
作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection
攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements
,您可以摆脱在值周围使用单引号。
答案 1 :(得分:0)
使用Mysqli而不是Mysql。
您的查询解决方案:
$name = $_GET['name'];
$sql = "SELECT Name, Des, Url, about, date FROM data where name = '".mysql_real_escape_string($name)."'";
$retval = mysql_query( $sql, $conn );