2014-03-12 81 views
-3

我必須在mysqli查詢中轉義雙引號,因爲它位於用雙引號(長篇故事...)標記的部分內。無論如何,當我這樣做:轉義雙引號時出錯

$result = mysqli_query($db, \"SELECT `is_doing` FROM `users` WHERE `users`.`user_name` = '{$user}'\"); 

我收到以下錯誤:

解析錯誤:語法錯誤,意外'「,希望標識符(T_STRING)

而且,對於澄清,它是上面顯示的代碼行

請幫我

UPDATE:。以下是部分:

<script type="text/javascript"> 
function announce(user_name){ 
document.getElementById("Divvy").innerHTML="<?php 
$user='"+user_name+"'; 
if($user != 'Contact list'){ 
$result = mysqli_query($db, \"SELECT `is_doing` FROM `users` WHERE `users`.`user_name` = '{$user}'\"); 
while($row = $result->fetch_assoc()){ 
print_r($row); 
} 
echo $user.' is doing something that you will soon know about'; 
} 
?>"; 
} 
</script> 

由於各種原因,它已被寫入PHP到JavaScript部分亂七八糟像

+1

'因爲它位於標有雙引號的部分內部,你能展示更多的這一部分嗎? – amaster

+0

你不能用'\啓動字符串「'或'\'',這是在字符串中使用,以避免@ amaster507 –

+0

的字符串。意外結束我有更多的代碼 – user3411896

回答

1

轉換查詢到

$result = mysqli_query($db, "SELECT `is_doing` FROM `users` WHERE `users`.`user_name` = '{mysqli_escape_string($user)}'"); 
+0

我道歉PHP的互動,我沒有看到行 – user3411896

+0

所以你需要學會在PHP字符串的基本結束訪問 - HTTP:// www.php.net/manual/en/language.types.string.php –

+0

現在沒有錯誤,但仍然查詢不返回任何可視價值數據庫連接是否牢固 – user3411896

1

你如何雙引號的誤解進出PHP的代碼工作。只有php機箱<?php?>中的代碼將由php執行,其餘部分將簡單顯示在輸出到瀏覽器的頁面上。

例如:

<script> 
    var myvar = "<?php print "foo bar"; ?>"; 
    alert(myvar); 
</script> 

會提醒

foo bar 

看看你的頁面的源代碼,看看document.getElementById("Divvy").innerHTML設置等於。在那裏你會看到你的mysql錯誤最有可能或有效的輸出。但是不要逃串你的PHP代碼中,只是因爲它是由雙引號在HTML/JS你的php打開/關閉標籤的外包圍

編輯:

之所以你的代碼不工作是因爲你的查詢返回沒有結果,因爲這條線:

$user='"+user_name+"'; 

您試圖設置一個PHP變量與JavaScript變量。這是無法完成的! PHP由服務器執行,並在代碼發送給用戶後由瀏覽器執行JavaScript。

來自備註:

function jstophp(){ 


var javavar=document.getElementById("text").value; 

document.getElementById("rslt").innerHTML=""+javavar+""; 
} 

function phptojs(){ 

var javavar2 = "I am php variable value"; 
alert(javavar2); 
} 

看看實際的源代碼。該函數只是提醒用PHP設置的變量,而不是將變量從JavaScript發送到PHP以便在PHP腳本中使用。

+0

再怎麼就在這裏工作:http://ibence.com/new.php – user3411896

+0

這是AJAX是如此受歡迎,是因爲它的原因允許JavaScript像你想要的那樣與PHP進行交互。 – amaster

+0

這絕對是一個可變的東西(雖然我不知道爲什麼回聲工作正常),我怎麼會在AJAX中做到這一點? – user3411896

0

嘗試:

$result = mysqli_query($db, "SELECT `is_doing` 
           FROM `users` 
           WHERE `users`.`user_name` = '$user' "); 

BWT你用JavaScript混合PHP?