当id是字母时选择数据 - 不是数字
从MySql中选择数据时,如何使用字母而不是数字?当id是字母时选择数据 - 不是数字
这是工作:
<?php
$page = '1001';
$result = mysqli_query($con,"SELECT * FROM `comment` WHERE `page` = $page LIMIT 1001");
?>
但如果$页= 'page_one' ..行 '页面' 为VARCHAR(30)
编辑 - 试图澄清的问题: 这是我想这样做,但它不工作 - 提供了一个错误:
$page = 'page_one';
$result = mysqli_query($con,"SELECT * FROM `comment` WHERE `page` = $page LIMIT page_one");
只需添加'在你的参数时,它是一个字符串,而不是一个整数
$page = "somerandomtext";
SELECT * FROM `comment` WHERE `page` = '$page' LIMIT 1001
你收到的错误究竟是什么? – 2014-09-19 11:56:07
你真的应该用准备好的语句:
$page = 'abcd';
$stmt = $con->prepare("SELECT * FROM `comment` WHERE `page` = ? LIMIT 1001"));
$stmt->bind_param("s", $page);
$stmt->execute();
+1,我不明白为什么这是downvoted。这是安全明智的良好实践,可以解决问题中的问题。 – 2014-09-19 12:08:43
@MarvinLabs我误解了这个问题,并写了一个错误的答案 - 一个公平的downvote。然后我纠正了答案:) – 2014-09-19 12:57:39
他的意思是:
<?php
$page = '1001';
$result = mysqli_query($con,"SELECT * FROM `comment` WHERE `page` = '$page' LIMIT 1001");
?>
这样的查询字符串将包含“字符..
如果我在'$ page'和'LIMIT'之后将'1001'更改为'page_one',将不起作用 - – jan199674 2014-09-19 12:07:29
您不能在字符串之后进行限制。限制只会告诉你从查询中返回的最大返回行数。限制1001意味着可以返回1001行 – 2014-09-19 12:12:21
使用方法制得。语句(http://php.net/manual/en/mysqli.prepare.php)。 – sectus 2014-09-19 11:50:34
不清楚你在问什么 – Ghost 2014-09-19 11:52:23
而不是'1001'我想用'page_one'-字母而不是数字 – jan199674 2014-09-19 12:02:43