我在下面的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)
它是工作和打印名称,请你告诉我有什么问题?
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注入.