有人可以讓我的代碼更好/更容易嗎?我認爲現在編碼很糟糕。更好的代碼建議?
我想打電話給一個INSERT MYSQLI
命令功能如下:
DatabaseHandler::__i('TABLENAME', array('username' => 'foobar', 'password' => 'world'));
我使用的這個現在,但它不工作,我認爲這是一個更好的機會。
public function __i($table, $arr) { $c=$this->connection;
foreach ($arr as $name => $val):
$param1.=$name . ",";
$param2.="?,";
endforeach;
$PARAM1 = substr_replace($param1, '', -1);
$PARAM2 = substr_replace($param2, '', -1);
$query = 'INSERT INTO '.$table.' ('.$PARAM1.') VALUES ('.$PARAM2.')';
foreach ($arr as $name => $val):
if (is_int($val)) :
$param = 'i';
endif;
if (is_string($val)) :
$param = 's';
endif;
if (is_double($val)) :
$param = 'd';
endif;
$binds.=$param;
$values.="'".$arr[$name]."',";
endforeach;
$values = substr_replace($values, '', -1);
if ($s = $c->prepare($query)):
$args = $binds + $values;
call_user_func_array(array($s, 'bind_param'), array($binds, $values));
$s->execute();
$s->close();
endif;
}
您需要發佈此這裏的http://代碼審查。 stackexchange.com/ – amitchhajer
只是一個觀點,讓代碼先「工作」然後嘗試優化它會不會更容易?如果您將問題更改爲「它不起作用」,那麼我們可能會先讓它工作,然後以工作代碼的形式跳轉到鏈接,如@amitchhajer建議 – dbf
您應該明確地嘗試查明究竟是什麼首先工作。你會得到什麼錯誤? – Mahn