2014-10-04 50 views
-6

我有报价问题。我不能使用“或”适用于$的gname,我可以为此做些什么。2个不同的报价内的PHP报价

$new_post = array('post_content' => ' ..CODES.. $result = mysqli_query($con,"SELECT * FROM wp_games WHERE name = $gname "); ..CODES..

我试图创建一个职位上wordpress.I有一个插件来使用PHP的信息。[ insert_php]是这个插件。而且我也不能使用引号如\“... \”。这里是更多的代码。

$new_post = array(
'post_content' => '[insert_php]$con=mysqli_connect("localhost","root","","wordpress"); 
if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$result = mysqli_query($con,"SELECT * FROM wp_games WHERE name = '$gname' "); 
while($row = mysqli_fetch_assoc($result)) { 
echo $row["name"]; 
} 

mysqli_close($con); 
[/insert_php]', 
+0

这在很多层面都被破坏 - 非常混乱,并且容易出现泛滥的PHP和/或SQL注入。无论如何,请参阅[PHP字符串](http://php.net/manual/en/language.types.string.php)了解引号如何在PHP字符串上下文中转义。 (其中,就像Inception的一个糟糕的重制,内部字符串文字是两个深度..) – user2864740 2014-10-04 22:25:13

+0

发布你的实际代码,我不帮助回答伪装,它只是让我们猜测,直到奶牛回家。 – 2014-10-04 22:25:17

+0

http://stackoverflow.com/help/how-to-ask – 2014-10-04 22:27:16

回答

0

可以使用chr(39)创建一个单引号,并追加到字符串。您还应该转义内容$gname

mysqli_query($con,"SELECT * FROM wp_games WHERE name = " . chr(39) . mysqli_real_escape_string($con, $gname) . chr(39)); 
+0

问题是post_content和mysqli_query中的双引号之后有单引号。所以我不能为$ gname使用任何报价。 – 2014-10-04 22:38:28

+0

@NaimBerkTumer我更新了解决方法,在不使用单引号字符的情况下将单引号放入字符串中。 – AlliterativeAlice 2014-10-04 22:42:11

+0

感谢它的工作 – 2014-10-04 22:48:01