0

mysqliとプリペアドステートメントに問題があります。mysqliの学習を1時間始めたばかりですが、次の2つのエラーが発生する理由がわかりません。

Notice: Undefined variable: mysqli in /opt/lampp/htdocs/lr/testingi.php on line 17

Fatal error: Call to a member function prepare() on a non-object in /opt/lampp/htdocs

/lr/testingi.php on line 17

データベース接続を含むファイルがあります。ここにあります。

$mysqli = new mysqli("localhost", "user", "password", "db");

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

これがエラーを再現しているテストファイルです。

session_start();

require_once 'core/database/connect.php';

function user_id_from_username ($username) {

if ($stmt = $mysqli->prepare("SELECT `user_id` FROM `users` WHERE `username` = ?"))

$stmt->bind_param('s', $username);  
$stmt->execute();
$stmt->bind_result($user_id);
echo $user_id;  
$stmt->close(); 
}

$username = 'Jason';        

user_id_from_username ($username);  
4

1 に答える 1

4

関数に渡し$mysqliていないようです。user_id_from_username

2つのクイックオプション:

1.グローバル

function user_id_from_username ($username) {
global $mysqli;
if ($stmt = $mysqli->prepare("SELECT `user_id` FROM `users` WHERE `username` = ?"))

$stmt->bind_param('s', $username);  
$stmt->execute();
$stmt->bind_result($user_id);
echo $user_id;  
$stmt->close(); 
}

2.2番目のパラメーター

function user_id_from_username ($mysqli, $username) {//..}

user_id_from_username($mysqli, $username);
于 2012-09-01T05:41:43.387 に答える