附加查询字符串 - PHP

时间:2013-12-08 03:20:43

标签: javascript php string

我有一个php变量

$query="insert into msnowplaying values";

然后,我想追加一个查询字符串

$q1="('1', '$selMovieTitle1', 'ST001', '1', '' )";
$query.=$q1;
echo "<script type='text/javascript'>alert('$query');</script>";

但是,警报没有显示任何内容。不知何故,控制台上出现了错误:

[10:12:06.851] SyntaxError: missing ) after argument list @ http://localhost:1234/2013_12_2/controller/doaddNowPlaying.php:1

我错过了什么? 我已将$q1更改为" a",并且警报显示为insert into msnowplaying values a

我不知道发生了什么,我真的需要一些帮助。感谢。

2 个答案:

答案 0 :(得分:4)

请记住,在HTML点击查看器之前在服务器上解析PHP ,在用户收到HTML之后在浏览器中解析javascript

您发送给用户的内容是由PHP写入数据的,就像您手动编写的那样,包括以后可能被解释为javascript代码的任何内容。

当您向浏览器回显$query时,您很可能最终得到如下内容:

<script type='text/javascript'>alert('('1', '$selMovieTitle1', 'ST001', '1', '' )');</script>

你看到这是如何无效的JavaScript?您在alert('..')中使用未转义的单引号。首先,如果你想在javascript中看到正确的字符串,试试这个:

echo '<script type="text/javascript">alert("'.addslashes($query).'");</script>';

这里我们使用函数addslashes()http://php.net/addslashes)来适当地转义引号。

答案 1 :(得分:1)

$query = "insert into msnowplaying values";
$query .= "('1', '$selMovieTitle1', 'ST001', '1', '' )";
$query = addslashes($query);
echo "<script type='text/javascript'>alert('$query');</script>";

试试