数据库<&燃气轮机;PHP通信脚本不工作
所以我得到了这段代码,它是一个PHP脚本,用于将我的数据库与我的应用程序进行通信。但是,不知何故,更新功能根本不起作用,我也不知道出了什么问题——尽管我99%确定它不是应用程序本身 这是整个php脚本数据库<&燃气轮机;PHP通信脚本不工作,php,mysql,database,mysqli,Php,Mysql,Database,Mysqli,所以我得到了这段代码,它是一个PHP脚本,用于将我的数据库与我的应用程序进行通信。但是,不知何故,更新功能根本不起作用,我也不知道出了什么问题——尽管我99%确定它不是应用程序本身 这是整个php脚本 <?php class DataBase { private $server; private $user; private $password; private $database; function __construct($serve
<?php
class DataBase
{
private $server;
private $user;
private $password;
private $database;
function __construct($server, $user, $password, $database)
{
$this->server = $server;
$this->user = $user;
$this->password = $password;
$this->database = $database;
}
private function connect()
{
$connect = mysqli_connect($this->server, $this->user, $this->password) or die('Error, no se ha podido conectar.');
mysqli_select_db($connect, $this->database);
return $connect;
}
private function diconnect($connect)
{
return mysqli_close($connect);
}
private function wheres($wheres)
{
$w = '';
foreach ($wheres as $where => $key)
{
$w .= ' `'.$where.'` = "'.$key.'"';
}
return $w;
}
private function sets($sets)
{
$w = '';
foreach ($sets as $set => $key)
{
$w .= ' `'.$set.'` = "'.$key.'",';
}
return substr($w, 0, -1);
}
public function select($table, $wheres = null)
{
$connect = $this->connect();
if ($wheres == null)
{
$query = mysqli_query($connect, 'SELECT * FROM `'.$table.'`');
} else {
$query = mysqli_query($connect, 'SELECT * FROM `'.$table.'` WHERE '.$this->wheres($wheres));
}
$i = 0;
$ret = array();
while ($row = mysqli_fetch_assoc($query)) {
foreach ($row as $key => $value) {
$ret[$i][$key] = $value;
}
$i++;
}
return ($ret);
}
public function insert($table, $inserts)
{
$connect = $this->connect();
$values = array_values($inserts);
$keys = array_keys($inserts);
return $query = mysqli_query($connect, 'INSERT INTO `'.$table.'` (`'.implode('`,`', $keys).'`) VALUES (\''.implode('\',\'', $values).'\')');
}
public function delete($table, $wheres = null)
{
$connect = $this->connect();
if ($wheres == null)
{
return $query = mysqli_query($connect, 'DELETE FROM `'.$table.'`');
} else {
return $query = mysqli_query($connect, 'DELETE FROM `'.$table.'` WHERE '.$this->wheres($wheres));
}
}
public function update($table, $id, $sets = null)
{
$connect = $this->connect();
return $query = mysqli_query($connect, 'UPDATE `'.$table.'` SET'.$this->sets($sets).' WHERE `id` = "'.$id.'"');
}
}
if (!empty($_POST))
{
if (isset($_POST['method']))
{
if (isset($_POST['table']))
{
$DataBase = new DataBase('127.0.0.1', 'root', 'password', 'coord_tic');
switch ($_POST['method'])
{
case 'insert':
$inserts = $_POST;
unset($inserts['table']);
unset($inserts['method']);
echo json_encode($DataBase->insert($_POST['table'], $inserts));
break;
case 'delete':
$wheres = $_POST;
unset($wheres['table']);
unset($wheres['method']);
echo json_encode($DataBase->delete($_POST['table'], $wheres));
break;
case 'select':
$wheres = $_POST;
unset($wheres['table']);
unset($wheres['method']);
echo json_encode($DataBase->select($_POST['table'], $wheres));
break;
case 'update':
$wheres = $_POST;
unset($wheres['table']);
unset($wheres['method']);
unset($wheres['id']);
echo json_encode($DataBase->update($_POST['table'], $_POST['id'], $wheres));
break;
default:
echo json_encode(false);
break;
}
} else {
echo json_encode(false);
}
} else {
echo json_encode(false);
}
} else {
echo json_encode(false);
}
您的代码可以在简单的情况下工作
测试代码:
// ddl for x table is
// create table x (id int, val int);
$DataBase = new DataBase('127.0.0.1', 'root', 'password', 'test');
var_dump($DataBase->insert('x', array('id' => 8, 'val' => 13)));
var_dump($DataBase->select('x', array('id' => 8)));
var_dump($DataBase->update('x', 8, array('val' => 25)));
var_dump($DataBase->select('x', array('id' => 8)));
输出:
bool(true)
array(1) {
[0]=>
array(2) {
["id"]=>
string(1) "8"
["val"]=>
string(2) "13"
}
}
bool(true)
array(1) {
[0]=>
array(2) {
["id"]=>
string(1) "8"
["val"]=>
string(2) "25"
}
}
您应该添加不适合您的测试数据。例如,更新不起作用的数据结构和POST数据。您进行过任何调试吗?比如回显你的查询,看看它是否会直接在phpmyadmin/mysql中执行?提示:在这里转储160行代码,希望有人能发现其中的错误,这不是怎么回事……问题是这是由一些不再是朋友的家伙写的,我有点依赖于此,但实际上我对PHP一无所知。。。我知道这不是最好的方式,我也不想把我的戏剧传播开来,但我需要帮助:P