我需要多一双眼睛!我有一个 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)漏洞)。
关于php - 插入变量时mysqli查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4704705/