2014-09-19 29 views
-2

从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"); 
+7

使用方法制得。语句(http://php.net/manual/en/mysqli.prepare.php)。 – sectus 2014-09-19 11:50:34

+0

不清楚你在问什么 – Ghost 2014-09-19 11:52:23

+0

而不是'1001'我想用'page_one'-字母而不是数字 – jan199674 2014-09-19 12:02:43

回答

1

只需添加'在你的参数时,它是一个字符串,而不是一个整数

$page = "somerandomtext"; 
SELECT * FROM `comment` WHERE `page` = '$page' LIMIT 1001 
+0

你收到的错误究竟是什么? – 2014-09-19 11:56:07

2

你真的应该用准备好的语句:

$page = 'abcd'; 
$stmt = $con->prepare("SELECT * FROM `comment` WHERE `page` = ? LIMIT 1001")); 
$stmt->bind_param("s", $page); 
$stmt->execute(); 
+2

+1,我不明白为什么这是downvoted。这是安全明智的良好实践,可以解决问题中的问题。 – 2014-09-19 12:08:43

+1

@MarvinLabs我误解了这个问题,并写了一个错误的答案 - 一个公平的downvote。然后我纠正了答案:) – 2014-09-19 12:57:39

0

他的意思是:

<?php 
$page = '1001'; 
$result = mysqli_query($con,"SELECT * FROM `comment` WHERE `page` = '$page' LIMIT 1001"); 
?> 

这样的查询字符串将包含“字符..

+0

如果我在'$ page'和'LIMIT'之后将'1001'更改为'page_one',将不起作用 - – jan199674 2014-09-19 12:07:29

+1

您不能在字符串之后进行限制。限制只会告诉你从查询中返回的最大返回行数。限制1001意味着可以返回1001行 – 2014-09-19 12:12:21

相关问题