2011-04-08 31 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

相关问题