php - 插入变量时mysqli查询不起作用

标签 php mysqli

我需要多一双眼睛!我有一个 super 简单的查询:

$result = $mysqli->query("SELECT post_id FROM blog_posts WHERE post_uri = 'the-test-post' LIMIT 1");
$row = $result->fetch_array();

这给了我 post_id。但是,如果我为 post_uri 插入一个变量,则结果为空。我尝试过但没有奏效的方法:

$result = $mysqli->query("SELECT post_id FROM blog_posts WHERE post_uri = '".$post_uri."' LIMIT 1");


$result = $mysqli->query("SELECT post_id FROM blog_posts WHERE post_uri = ".$post_uri." LIMIT 1");


$result = $mysqli->query("SELECT post_id FROM blog_posts WHERE post_uri = $post_uri LIMIT 1");

我在另一个工作正常的页面上有类似的查询,这让我更加困惑。感谢帮助。

最佳答案

您正在将变量直接插入查询中。这很容易出错(正如您所发现的那样),并且有很高的风险,您将无法对其进行充分清理(从而导致 SQL 注入(inject)漏洞)。

使用the PDO layer and bound variables .

关于php - 插入变量时mysqli查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4704705/

相关文章:

php - 需要通过php文件更改mysqli_query输出格式

mysql - MYSQL错误未加载SQL

php - 如果是 iPad/iPhone,则不显示此信息

php更新多行

php - 如何从重负载服务器的表中随机选择唯一值

php - mysql根据列值选择查询php

php - 单击函数,Window.location

php - 低效的 SQL 查询

php mysqli 没有返回值

php - Mysql 连接给出严格标准错误