所以我在站点的phpmyadmin中有一个会员数据库,并且我获取了一个api以获取给定ID号的特定会员,现在我可以连接并拨打电话了,但是每次我只收到一个空的json例子
[“”,“”,“”,“,”“,”“]
id号是一个有效的数字,一个无效的数字甚至是一个字母都没关系,那就是我每次都能得到的
现在这是我的连接代码
<?php
header( 'Content-Type: text/html;charset=utf-8' );
function ejecutarSQLCommand($commando){
$mysqli = new mysqli("ip", "user", "pass","database");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
if ( $mysqli->multi_query($commando)) {
if ($resultset = $mysqli->store_result()) {
while ($row = $resultset->fetch_array(MYSQLI_BOTH)) {
}
$resultset->free();
}
}
$mysqli->close();
}
function getSQLResultSet($commando){
$mysqli = new mysqli("ip", "user", "pass", "database");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
if ( $mysqli->multi_query($commando)) {
return $mysqli->store_result();
}
$mysqli->close();
}
?>
这是请求文件
<?php
include('function.php');
$id=$_GET["ID"];
if($resultset=getSQLResultSet("SELECT * FROM `table` WHERE ID='$id'")){
while ($row = $resultset->fetch_array(MYSQLI_NUM)){
echo json_encode($row);
}
}
?>
答案 0 :(得分:0)
我编写了更实际的代码。下一步将把它变成一个类。
准备(而不是查询)将防止SQL注入以及其中带有引号的数据。
index.php
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
include('function.php');
$id=$_GET["ID"];
dbConnect();
$rows = getSQLResultSet($id);
echo json_encode($rows);
dbClose();
function.php
<?php
//
// not sure if this is needed for returning json
//
header( 'Content-Type: text/html;charset=utf-8' );
//////////////////////////////////////////////////////////////////////////////////////////////////////
function dbConnect(){
//
// You should be gettng the db connect info from a source out side the webservers reach.
//
// read a ini file or imclude a file
//
$ip = '127.0.0.1';
$user = 'test';
$pass = 'test12';
$db = 'test';
$GLOBALS['mysqlI'] = new mysqli($ip, $user, $pass, $db);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_errno());
exit();
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
function dbClose(){
$GLOBALS['mysqlI']->close();
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function getSQLResultSet($id){
$stmt = $GLOBALS['mysqlI']->prepare('SELECT * FROM test WHERE ID = ?');
$stmt->bind_param('i', $id);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_object()){
$ret[] = $row;
}
return $ret;
}