0

私はPHPが初めてで、MySQLiが初めてで、5つの変数で構成されるデータベースに行を挿入しようとしています。

if($_POST['submit']) {
            $title = mysqli_escape_string($_POST['title']);
            $content = $_POST['content'];
            $author = $_SESSION['fullname'];
            $publishedtime = time();
            $pageID = $_POST['pageid'];
            $connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

            if ($connection->errno) {
                printf("Connection failed: %s\n", $connection->error);
                exit();
            }

            $author = $_SESSION['fullname'];
            $publishedtime = time();
            $q = "INSERT INTO posts (title, content, author, publishedtime, pageID) VALUES ('".$title."', '".$content."', '".$author."', '".$publishedtime."', '".$pageID."')";

            if (!$dbc->query($q)) {
                echo "INSERT failed: (" . $dbc->errno . ") " . $dbc->error;
            }    
            echo "Newest user id = ",$dbc->insert_id;

            $connection->close();

        }
        else {
            addPostForm();
        }

そして、私はこれらのエラーを受け取ります:

警告: mysqli_escape_string() は、11 行目の /admin/manage.php で指定された、正確に 2 つのパラメーターを想定しています。

致命的なエラー: 27 行目の /admin/manage.php の非オブジェクトに対するメンバー関数 query() の呼び出し

データベースは正常に読み取れますが、挿入できません。

ありがとう

4

1 に答える 1

2

オブジェクトreal_escape_stringを作成した後に使用する場合は、単に使用できますmysqli

$connection->real_escape_string($_POST['title'])

http://www.php.net/manual/en/mysqli.real-escape-string.php


クエリエラーについては...どこ$dbcから来たの?! 以下を使用します。

$connection->query(...);
于 2012-10-07T14:44:08.553 に答える