ホームページ  >  記事  >  バックエンド開発  >  Mysqli の準備エラーに関連する問題については、早急に専門家の指導を求めてください。

Mysqli の準備エラーに関連する問題については、早急に専門家の指導を求めてください。

WBOY
WBOYオリジナル
2016-06-13 12:24:35810ブラウズ

緊急! ! ! Mysqli のプリペアエラー問題について専門家の指導をお願いします
久しぶりにプログラムを書きました php5.0 でバージョンアップした mysqli クラスはデータベースを操作する上でメリットが多いので使ってみたいと思います。データベースを操作する mysqli メソッドを使用して、インターネット上の情報を確認し、マニュアルを読んだ後、参照と削除は正常に実現できますが、挿入関数では常にエラーが表示されます: Fatal error: Call to a member function prepare() on null in D:xamppshtdocstxladdbook.php の 20 行目。
この問題が解決できない場合、Mysqli を諦めるべきでしょうか?私のコードのどこが間違っているのか教えていただけますか?それともサーバーの問題でしょうか? (サーバーには統合環境 Xampps1.9.7 を使用しています)

if($_POST['contacts'] == "true")
{
$stmt = $mysqli->prepare ( "INSERT INTO contactsuser(bookUname, bookDep, bookDuty,bookphone,bookTel,bookEmail,bookGid) VALUES (?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param(' sssd '、$bookUname、$bookDep、$bookDuty、$bookphone、$bookTel、$bookEmail、$bookGid);

$bookUname = $_POST['bookUname'];
$bookDep = $_POST [ 'bookDep'];
$bookDuty = $_POST['bookDuty'];
$bookphone = $_POST['bookphone'];
$bookTel = $_POST['bookTel'];
$bookEmail = $_POST['bookEmail'];
$bookGid = $_POST['bookGid'];

/* 準備されたステートメントを実行 */
$stmt->execute() ;
printf("%d Row Inserted.n", $stmt->affected_rows);
/* ステートメントと接続を閉じる */
$stmt->close();
exit ;
}
------解決策----------------------
$mysqli ではありませんmysqli オブジェクト
-----ソリューションのアイデア----------------------
プロセス指向のアプローチを試す:

$stmt = mysqli_prepare($link, "INSERT INTO contactsuser(bookUname, bookDep, bookDuty,bookphone,bookTel,bookEmail,bookGid) VALUES (?, ?, ?, ?, ?, ?, ?)")



-----ソリューションのアイデア----------------------
mysqli_stmt_bind_param($stmt,'ssssssd', $bookUname, $bookDep, $bookDuty, $bookphone, $bookTel, $bookEmail, $bookGid);

http://php.net/manual/zh/mysqli-stmt.bind-param.php

変数の数と長さの文字列型はステートメント内のパラメータと一致する必要があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。