Всем привет. В общем, пишу скрипт на добавление/редактирование/удаление/отображение результатов из БД MySQL. Пишу его на PHP 7 с использованием ООП.
Столкнулся с проблемой - не выводятся результаты из БД, пишет ошибку на неправильные аргументы Foreach и недостаточных аргументов в функции MySQL_fetch_array. Прошу помочь с решением этой проблемы. Добавление работает.
Исходники:
fetch.php
<?php
## Fetcher engine 0.9.444
class contentFetch {
public static $element, $info;
private static $row, $result;
public static function addContent() {
$connectMysqli = new connectMysqli();
self::$element = $_REQUEST['element'];
if (ini_get("magic_quotes_gpc"))
$element = array_map('stripslashes', $element);
$connectMysqli->mysqli_qw('
INSERT INTO '.TABLENAME.' SET name=?, text=?',
$element['name'], $element['text']
) or die(mysql_error());
Header("Location: {$_SERVER['SCRIPT_NAME']}?".time());
exit();
}
public static function deleteContent() {
mysqli_qw('
DELETE FROM '.TABLENAME.' WHERE id=?
', $delete) or die(mysql_error());
}
public static function resultContent() {
$connectMysqli = new connectMysqli();
$connectMysqli->mysqli_qw('
SELECT *, UNIX_TIMESTAMP(stamp) AS stamp
FROM '.TABLENAME.'
ORDER BY stamp DESC
') or die(mysql_error());
for (self::$info = array(); self::$row = mysqli_fetch_array(self::$result); self::$info[] = self::$row);
}
}
?>
mysqli_qw.php
<?php
class connectMysqli {
private static $connect;
public function __construct() {
self::$connect = mysqli_connect("localhost", "name", "passwd", "db_name");
}
/*public function __destruct() {
mysqli_close(self::$connect);
}*/
public static function mysqli_qw() {
$args = func_get_args();
$conn = NULL;
if(is_resource($args[0])) $conn = array_shift($args);
$query = call_user_func_array(array("self", "mysqli_make_qw"), $args);
return $conn!==null? mysqli_query($query, $conn) : mysqli_query(self::$connect, $query);
}
public static function mysqli_make_qw() {
$args = func_get_args();
$tmpl =& $args[0];
$tmpl = str_replace("%", "%%", $tmpl);
$tmpl = str_replace("?", "%s", $tmpl);
foreach ($args as $i=>$v) {
if(!$i) continue;
if (is_int($v)) continue;
$args[$i] = "'".mysqli_real_escape_string(self::$connect, $v)."'";
}
for ($i=$c=count($args)-1; $i<$c+20; $i++)
$args[$i+1] = "UNKNOWN_PLACEHOLDER_$i";
return call_user_func_array("sprintf", $args);
}
}
?>
plugin_list.php
<?php
## Plugin list 0.9.444
foreach (contentFetch::$info as contentFetch::$element) {
require_once("./plugin_list.html");
}
?>
plugin_list.html
<!-- Plugin list 0.9.444 -->
<b>
<?=date("d.m.Y", contentFetch::$element['stamp'])?>
<?=htmlspecialchars(contentFetch::$element['name'])?>
</b>
<a href="<?=$_SERVER['SCRIPT_NAME']?>?delete=<?=contentFetch::$element['id']?>">
[delete]</a>
<blockquote>
<?=nl2br(htmlspecialchars(contentFetch::$element['text']))?>
</blockquote>
index.php
<?php
## indexpage
define("TABLENAME", "subd");
require_once("./mysqli_qw.php");
$connectMysqli = new connectMysqli();
$connectMysqli->mysqli_qw('
CREATE TABLE IF NOT EXISTS '.TABLENAME.' (
id INT AUTO_INCREMENT PRIMARY KEY,
stamp TIMESTAMP,
name VARCHAR(60),
text TEXT
)
');
require_once("./fetch.php");
$contentFetch = new contentFetch();
require_once("./plugin_fetch.html");
require_once("./plugin_list.php");
require_once("./plugin_list.html");
if (@$_REQUEST['doAdd']) {
$contentFetch->addContent();
}
if ($delete = @$_REQUEST['delete']) {
$contentFetch->deleteContent();
}
$contentFetch->resultContent();
?>
Заранее благодарю.