-1
所以我得到了这段代码,它是一个PHP脚本,它将我的数据库与我的应用程序进行通信。但是,不知何故,更新功能根本不起作用,我无法弄清楚什么是错误的 - 虽然我99%肯定它不是应用程序本身。数据库<> PHP通信脚本不工作
这里是整个PHP素文字
<?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);
}
我真的希望你能帮助我,因为我的工作依赖于现在这些权利,
非常感谢!
你有没有做过任何调试?像echo'ing你的查询,看看它是否会直接在phpmyadmin/mysql中执行? – Epodax
提示:在这里倾倒160行代码,希望有人会发现它们的错误不是这是如何工作的... – deceze
问题是这是由一些不是朋友写的,不再是兄弟,我有点依赖于这个但实际上我对PHP一无所知......我知道这不是最好的方式,我不想传播我的戏剧,但我需要帮助:P – marsh