PHP MYSQL数据获取问题


PHP MYSQL Data fetching issue

我在从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 .

使用Double quotes,这样就不需要任何单引号转义。

$sql = "SELECT  Name, Des, Url, about, date
        FROM    data 
        where   name = '$name'";

附带说明一下,如果变量的值(s)来自外部,那么查询就容易受到SQL Injection的攻击。请看下面的文章来了解如何防止它。通过使用PreparedStatements,您可以摆脱在值周围使用单引号的情况。

  • 如何防止PHP中的SQL注入

使用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 );