MaV*_*aVe 1 javascript php mysql jquery post
在Javascript函数中,我有以下JQuery,我在其中调用PHP脚本(即getDBData.php)从查询中获取数据库数据:
$("#dbcontent").load("getDBData.php", {query: "SELECT * FROM `texts` WHERE name='John' LIMIT 10;"});
Run Code Online (Sandbox Code Playgroud)
在getDBData中,我通过POST获取此查询:
$query = $_POST['query'];
Run Code Online (Sandbox Code Playgroud)
并将其作为mysql_query的输入:
$query = mysql_query($query) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
但是,我得到以下MySQL错误:
您的SQL语法有错误; 查看与MySQL服务器版本对应的手册,以便在第1行'\'John \'LIMIT 10'附近使用正确的语法
这可能有什么问题?我想它在传递查询时与字符编码有关,但似乎没有把它弄好.
在任何情况下都不应该这样做.您应该传递参数,然后可以使用这些参数来构建正确的查询.
至少做这样的事......
使用Javascript
$.post('getDBData.php', {
query: 'getTextsByUser',
user: 'John'
});
Run Code Online (Sandbox Code Playgroud)
PHP
$queries = array(
'getTextsByUser' => 'SELECT * FROM texts WHERE name = ?',
'getNewsById' => 'SELECT * FROM news WHERE id = ?'
);
$stmt = $dbConnection->prepare($queries[$_POST['query']);
$stmt->bind_param('s', $_POST['user']);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// do something with $row
}
Run Code Online (Sandbox Code Playgroud)
然后getUsers通过ajax 传递以确定要运行的查询.
注意:如果您刚刚开始这个项目,则不推荐使用mysql_query(),您应该考虑切换到mysqli.
| 归档时间: |
|
| 查看次数: |
2831 次 |
| 最近记录: |