有没有办法使用完全客户端Javascript访问MySql数据库,还是需要使用PHP或C#等服务器端语言?
由于
答案 0 :(得分:11)
Javascript,如果在浏览器中运行,则无法访问MySQL数据库。首先,这是一个技术限制,因为Javascript无法传递任意协议(不,WebSockets不是解决方案)。请注意,作为服务器端和所有端口的Node.js是“不同类型的javascript”。
然后是安全问题。如果您的 javascript可以直接访问数据库,我可以自己轻松访问数据库。我将能够读取和操作相同的数据你的 javascript即可。安全方面称这是一场噩梦,这将是一种委婉说法。
您必须 - 并且希望通过服务器端应用程序路由数据库访问。如果该应用程序是用PHP编写的,那么C#或汇编并不重要。使用Node.js,您甚至可以在服务器端使用Javascript。用你喜欢的东西。
答案 1 :(得分:2)
您需要浏览服务器。即使你可以做到,给客户端代码直接访问数据库也是一个巨大的安全漏洞。
请注意,您可以在服务器上使用JavaScript,您不必使用PHP或C#。您可以使用多个服务器端JavaScript引擎,NodeJS(运行Google的V8引擎)和Rhino(在Java堆栈上运行)是其中两个。当然,微软已经在服务器上支持JScript至少15年。
答案 2 :(得分:1)
是的,您可以使用像Node.js这样的Javascript库在Javascript中执行MySQL查询 - 这样做客户端真是个坏主意(TM),因为您需要发送用户使用身份验证详细信息并为客户端提供连接到MySQL服务器的能力,这意味着任何IP都必须可以访问Internet!不好。但是,如果你真的只是因为你喜欢Javascript但你只打算在服务器上这样做,请尝试:(What MySQL drivers are available for node.js?)。
应该做的是在PHP或Perl或Python或C#中实现一个小型服务器端脚本,它只从查询中输出您想要的数据并使用AJAX来处理响应。
答案 3 :(得分:0)
您需要使用服务器端语言。否则这将是一个巨大的安全漏洞。任何人都可以访问此数据库并向其发送任意SQL查询。
答案 4 :(得分:0)
对于像MySql这样的数据库,你绝对应该使用服务器端语言。如果您希望javascript成为您唯一的语言,我建议您查看nodejs或couchDB
答案 5 :(得分:-1)
理论上,应该可以使用网络套接字等新功能。但是你不应该这样做,因为你必须公开你的凭据。使用您想要使用的任何可用语言创建服务器端包装器/协商器脚本并调用该脚本。您也可以使用它来验证输入(例如,过滤太荒谬的高分或不可能的值;取决于您正在做什么)。