2011-04-08 49 views
0

我想從數據庫中選擇一個字段,逃避它,將其連接到一個變種,並用它在JavaScript泡沫上如何選擇字段表單數據庫並將其分配給var?

這裏是我有:

<script> 
<?php include("php/connect.php"); 
$result = mysql_query("SELECT user FROM database where username = "user" limit 1"); 
$escaped_username = mysql_escape_string($username); 
?> 
var test = <?php $escaped_username ?> 
alert (test); 
</script> 

究竟是不是賴特? 謝謝

+0

報價..使用「」代替「」在'user',還需要'echo'變量.. – amosrivera 2011-04-08 17:31:50

回答

1

使用mysql_fetch_assoc(),您不必循環,它會讓您成爲第一行。 儘可能多地分開PHP和Javascript也是最好的選擇。

<?php 
    include("php/connect.php"); 

    // gets one row 
    $result = mysql_fetch_assoc(mysql_query("SELECT username FROM database WHERE username='some_user' LIMIT 1")); 
    $username = ''; 
    if($result !== FALSE) { // if it finds the username in the DB 
    $username = mysql_real_escape_string($result['username']); 
    } 
?> 

<scritpt type="text/javascript"> 
    var test = <?php echo $username; ?> 
    alert(test); 
</script> 
+0

編輯:'var test =「<?php echo $ username;?>」;' – Patrioticcow 2011-04-08 18:07:32

2

您或者需要使用while循環和mysql_fetch_array循環查詢,或者您可以使用mysql_result直接訪問查詢的第一行。此外,您選擇的是用戶,而不是數據庫的用戶名,而where子句應該使用單引號而不是double。

$result = mysql_query("SELECT username FROM database WHERE username = 'user' limit 1"); 
$username = mysql_result($result, 0); 
$escaped_username = mysql_escape_string($username); 
+0

使用'mysql_result()'是緩慢的,應該儘量避免,如果在所有可能的。執行'$ row = mysql_fetch_assoc($ result);改爲使用echo $ row ['username']'。尤其是因爲與多行/多列結果集相比,從數據庫中只提取一個字段/行的查詢往往是稀缺事物。 – 2011-04-08 17:53:21

相關問題