PHP中的SQL查询,带有一个;其中xxx=';yyy'&引用;

PHP中的SQL查询,带有一个;其中xxx=';yyy'&引用;,php,html,sql,sql-server,Php,Html,Sql,Sql Server,所以我想在网页上显示一个查询,我正在使用PHP来实现它。以下是查询的完整PHP代码: <?php $query = 'SELECT p.name, p.club, f.link, ROUND(2016-p.birthyear, 0) AS "age", p.position FROM pplayers p, pflags f WHERE p.country = f.country AND p.club = '1. FC Köln' ORDER BY name'; $result = pg_

所以我想在网页上显示一个查询,我正在使用PHP来实现它。以下是查询的完整PHP代码:

<?php
$query = 'SELECT p.name, p.club, f.link, ROUND(2016-p.birthyear, 0) AS "age", p.position
FROM pplayers p, pflags f
WHERE p.country = f.country AND p.club = '1. FC Köln'
ORDER BY name';
$result = pg_query($query) or die('Query failed: ' . pg_last_error());
while ($x = pg_fetch_object($result)) {
echo "<tr> <td> $x->name <td> $x->club <td> $x->link <td> $x->age <td> $x->position <td> \n";
}
pg_free_result($result);
pg_close($dbconn);
?>

查询(撇号内的部分)在SQL中可以100%正常工作,在没有“p.club='1.FC Köln'”的网页上也可以100%正常工作。我认为问题在于查询是用撇号(')表示的,因此我使用撇号表示“1”。FC Köln'销毁查询

我怎样才能解决这个问题


非常感谢

当您使用'in:'1。FC Köln'如果要关闭查询字符串,请使用双引号或转义它们:

$query = 'SELECT p.name, p.club, f.link, ROUND(2016-p.birthyear, 0) AS "age", p.position
FROM pplayers p, pflags f
WHERE p.country = f.country AND p.club = \'1. FC Köln\'
ORDER BY name';
或:


然后使用$p.club变量进行查询

用反斜杠转义单引号<代码>\'或使用法语引号“他们没有使用mysqli”。他们正在sql server上使用
pg.*
$query = 'SELECT p.name, p.club, f.link, ROUND(2016-p.birthyear, 0) AS "age", p.position
FROM pplayers p, pflags f
WHERE p.country = f.country AND p.club = "1. FC Köln\"
ORDER BY name';
$p.club = pg_escape_string($club);