我正在尝试编写一些查询来响应式地操作 MySQL 数据,但 Sublime Text 2 显示查询在我想要的之前结束。看看下面:
$query = "INSERT INTO `users` (`email`, `password`) VALUES('".mysqli_real_escape_string($link, $_POST['email'])."','".md5(md5($_POST['email'].$_POST['password']))."')";
逗号和右括号应为白色。
再说一遍,这是同样的问题:
$query = "SELECT * FROM `users` WHERE `email`='".mysqli_real_escape_string($link, $_POST['login-email'])."' AND `password`='".md5(md5($_POST['login-email'].$_POST['login-password']))."'";
我很难弄清楚如何编写此代码,以便确保它不是我的脚本中的错误。
如有任何帮助,我们将不胜感激。
最佳答案
我认为这是 Sublime 语法高亮的限制。请注意,在这两个查询中,SQL 语法突出显示在第一个字符串连接实例之后立即结束。如果您希望更彻底地突出显示 SQL 语句,您可能需要考虑使用准备好的语句。示例:
$stmt = $mysqli->prepare("INSERT INTO `users` (`email`, `password`) VALUES (?, ?)");
$stmt->bind_param($_POST['email'], md5(md5($_POST['email'].$_POST['password'])));
$stmt->execute();
$stmt->close();
这种方法还不需要手动转义字符串。
- 简单示例:http://mattbango.com/notebook/code/prepared-statements-in-php-and-mysqli/
- 文档:http://php.net/manual/en/mysqli.quickstart.prepared-statements.php
- 完整的 Mysqli 文档:http://php.net/manual/en/book.mysqli.php
或者,您可能需要考虑使用字符串插值而不是连接。这似乎也不会干扰 SQL 语法突出显示。
关于php - 为什么这些引用会结束 Sublime Text 2 中的 PHP 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26656068/