php - 从ajax获取值后选择数据库时出错

标签 php mysql

我使用js获取用户“name”并通过ajax将其发送到result.php。

在 result.php

$name = $_POST['name'] //name contain string

// Then I want to select information from that user "name"
$result2 = $db->query('SELECT story FROM `user_story` WHERE name='.$name) or error('failed', __FILE__, __LINE__, $db->error());

但是为什么不起作用呢?

有人可以向我解释一下并提供解决方案吗?

提前致谢

最佳答案

尝试使用引号:

//ADDED semicolon
$name = $_POST['name']; //name contain string 
// Then I want to select information from that user "name"
$result2 = $db->query('SELECT story FROM `user_story` WHERE name= "'.$name .  '"') or error('failed', __FILE__, __LINE__, $db->error());

注意: 最好的方法是使用 PDO 准备好的语句。

$name = $_POST['name'];

$result2 = $db->prepare("SELECT story FROM user_story WHERE (name = ?)");

$result2->execute(array($name));

看看PDOPrepared statements

关于php - 从ajax获取值后选择数据库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43851130/

相关文章:

php - MySQL 进行平均计算并输出到 php 变量中

javascript - PHP/html : instant search function: Can't search for foreign (e. g.Chinese)字符

PHP CRON 电子邮件发送 CPU 密集型

mysql - 加载数据文件 Powershell 缺少终止符

php - 使用 PHP 将 Excel 或 CSV 文件上传到 MySQL

php - 帮助 mysql string-to-date

php - 为在 PHP 中创建的图像添加边框

php - 如何同时从两个表中获取数据 PDO

php - PDO MySQL 创建名称为数字的表

mysql - 比较行并获取百分比