php与SQL查询

m7m*_*m7m 1 php sql

我在下面的php有问题:

$sql = 'SELECT name FROM chiled WHERE `im` LIKE $id ';
$query = mysql_query( $sql );
$a=mysql_fetch_row($query);
echo $a[0]; 
Run Code Online (Sandbox Code Playgroud)

有错误mysql_fetch_row($query); 但如果我执行以下操作:

$sql = 'SELECT name FROM chiled WHERE `im` LIKE 1111 ';
$query = mysql_query( $sql );
$a=mysql_fetch_row($query);
echo $a[0];
Run Code Online (Sandbox Code Playgroud)

它是工作和打印名称,请你告诉我有什么问题?

Joh*_*ker 5

PHP中的单引号不会评估嵌入变量 - 您需要使用双引号来执行此操作.(有关详细信息,请参阅PHP 字符串手册页的"单引号"部分.)

即: $sql = "SELECT name FROM chiled WHERE 'im' LIKE $id ";

或者更好......

$sql = 'SELECT name FROM chiled WHERE im="' . mysql_real_escape_string($id) . '"';
Run Code Online (Sandbox Code Playgroud)

(因为你没有使用%你喜欢的,你可能不会尝试进行任何形式的模式匹配.)

另外,我建议阅读现有的最佳方法来停止PHP问题/答案中的SQL注入.