PHP MYSQL数据提取问题

时间:2013-02-04 13:49:59

标签: php mysql sql

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

2 个答案:

答案 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 );