我正在尝试使用MySQLi Query获取数据.请检查我的SQL查询,我在If条件上收到错误.我添加旁边的错误
如果条件
当它显示到控制台时
<?php
$id = $_GET['id'];
include("../include/connection_string.php");
$sql = mysqli_query($db, "SELECT pages, main_id FROM dhms_index_table where main_id='"+$id+"'");
if(mysqli_num_rows($sql)){ // Showing error here " Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result"
$data = array();
while($row = mysqli_fetch_array($sql)){
$data[] = array(
'pages' => $row['pages'],
'main_ID' => $row['main_id']
);
}
header('Content-type: application/json');
echo json_encode($data);
}
?>
Run Code Online (Sandbox Code Playgroud)
connections_string.php
$server = 'localhost';
$username ="root";
$passwd ='';
$Dbase = 'og_dhms';
$db = @mysqli_connect($server,$username,$passwd)
or die("Could not connect database");
@mysqli_select_db($db, $Dbase)
or die("Could not select database");
Run Code Online (Sandbox Code Playgroud)
这条线
main_id='"+$id+"'
Run Code Online (Sandbox Code Playgroud)
使用+符号而不是点来连接.这是JS/C方法.也许你是来自那种类型的背景,并认为你可以在PHP中使用它; 你不能.
所以...
main_id='".$id."'
Run Code Online (Sandbox Code Playgroud)
还要确保你有值$id = $_GET['id'];.
错误报告将告诉您它是否是.
如果GET数组是一个整数(我很确定它是),你最好用(int)它.
$id = (int)$_GET['id'];
Run Code Online (Sandbox Code Playgroud)
并检查它是否已设置/不为空.
即:
if(isset($_GET['id'])){
$id = (int)$_GET['id'];
}
Run Code Online (Sandbox Code Playgroud)
要么
if(!empty($_GET['id'])){
$id = (int)$_GET['id'];
}
Run Code Online (Sandbox Code Playgroud)