我有这个代码,但是当我将LIMIT数据选择与变量一起使用时,它将无法工作:
$sql = "SELECT *
FROM structure
WHERE row1 LIKE '%" . $_POST["query"] . "%'
OR row2 LIKE '%" . $_POST["query"] . "%'
OR row3 LIKE'%" . $_POST["query"] . "%'
OR row4 LIKE'%" . $_POST["query"] . "%'
OR row5 LIKE'%" . $_POST["query"] . "%'
OR row6 LIKE'%" . $_POST["query"] . "% '
LIMIT {$variable} , {$variable2}";
但是,如果我使用相同的代码,但将LIMIT数据选择更改为数字,它将起作用:
$sql = "SELECT * FROM structure WHERE row1 LIKE '%".$_POST["query"]."%' OR row2 LIKE'%".$_POST["query"]."%' OR row3 LIKE'%".$_POST["query"]."%' OR row4 LIKE'%".$_POST["query"]."%' OR row5 LIKE'%".$_POST["query"]."%' OR row6 LIKE'%".$_POST["query"]."% ' LIMIT 0 , 5 ";
我需要使用变量,因为它不会永远不变。
编辑:这是我的全部代码:
$record_per_page = 5;
if(isset($_POST['query'])) {
$page = $_POST['query'];
$start_from = ($page - 1) * $record_per_page;
$sql = "SELECT *
FROM structure
WHERE row1 LIKE '%" . $_POST["query"] . "%'
OR row2 LIKE '%" . $_POST["query"] . "%'
LIMIT $start_from , $record_per_page";
$result = mysqli_query($connect, $sql);
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_array($result)) {
$output .= ' ';
}
echo $output;
}
}
答案 0 :(得分:0)
没有足够的代表评论,sry。 如果您尚未使用PDO,请首先阅读此内容,尤其是预备语句部分。 https://phpdelusions.net/pdo
接下来,选择您实际需要的列,而不是懒惰的选择*。 另外,你可以发布一些你的表定义吗?很想知道它是什么样的。
最后:
$query = "
SELECT *
FROM structure
WHERE row1 LIKE
OR row2 LIKE ?
OR row3 LIKE ?
OR row4 LIKE ?
OR row5 LIKE ?
OR row6 LIKE ?
LIMIT " . $variable1 . " , " . $variable2;
$stmt = $pdo->prepare($query);
$stmt->execute( ); //insert your parameters here
这应该让你上路=)
答案 1 :(得分:0)
你不需要LIMIT
中的花括号:
$sql = "SELECT *
FROM structure
WHERE row1 LIKE '%" . $_POST["query"] . "%'
OR row2 LIKE '%" . $_POST["query"] . "%'
OR row3 LIKE'%" . $_POST["query"] . "%'
OR row4 LIKE'%" . $_POST["query"] . "%'
OR row5 LIKE'%" . $_POST["query"] . "%'
OR row6 LIKE'%" . $_POST["query"] . "% '
LIMIT " . $start_from. " , " . $record_per_page. "";
修改强>
打印您的$variable
& $variable2
肯定......
更改此行:$start_from = ($page - 1) * $record_per_page;