2014-10-04 48 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