2014-09-19 62 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

相關問題