2010-12-16 15 views
0

私はここにいくつかの質問があるので、どんな助けも大歓迎です。私はここに3ページあります。mysqliでヘルプが必要です。selectステートメント

//Page 1 - Constants 

$dbhost = "database.url.com"; //Just made up 
$dbname = "dbname"; 
$dbuser = "dbuser"; 
$dbpass = "123456"; 


//Page 2 - The Function 

//This is where i need to write the function select information from the database. 

include ("include/page1.php"); 
$DBH = new mysqli($dbhost, $dbuser, $dbpass, $dbname); 
function selectInfo(){ 
$stmt = $DBH->prepare("SELECT * FROM information LIMIT ?,?"); 
} 
//This function obviously is not complete because I keep recieving different error messages. I guess i cannot figure out how to write a prepared select statement. Need some help here. 


//Page 3 - Where the function is called and where the user would be 
include ("include/page2.php"); 

//need to be able to call the function here with variables set. 

$start = 0; 
$end = 5; 
selectInfo(); 
echo the data that i need in the database. 

これはおそらく完全な混乱のように見えますが、私はここでやろうとしています。可能であれば、それを表示できるようにデータを取得できるようにしたいと考えています。

誰でも助けてくれますか?

答えて

1

あなたはmysqliのオブジェクト上bind_paramexecute方法を実行する必要があります。

$DBH->bind_param("ii", $start, $end); 

をし、文を実行します。

$DBH->execute(); 

だけmysqli APIに近い顔をしています。

php.net最初の例。このようなものに

function selectInfo(){ 
    $stmt = $DBH->prepare("SELECT * FROM information LIMIT ?,?"); 
} 

function selectInfo($limit, $offset){ 
    $stmt = $DBH->prepare("SELECT * FROM information LIMIT ?,?"); 
    $stmt->bind_param("ii", $limit, $offset); 
    $stmt->execute(); 

    // Other stuff to get your values from this query 
    ... 

    // Return the object with the results 
    return $values; 
} 
+0

おかげであなたは、あなたの関数を変更する必要があります

<?php $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5"; if ($stmt = $mysqli->prepare($query)) { /* execute statement */ $stmt->execute(); /* bind result variables */ $stmt->bind_result($name, $code); /* fetch values */ while ($stmt->fetch()) { printf ("%s (%s)\n", $name, $code); } /* close statement */ $stmt->close(); } /* close connection */ $mysqli->close(); ?> 

@mcbeav! 3ページから関数を呼び出すとき、どのようにパラメータをバインドする必要がありますか?私は2ページでそうするべきですが、3ページに変数を設定しますか?変数が変更されます。たとえば、ページ番号2にコードの最初の行を追加し、ページ3の関数を呼び出すときに変数を設定します。 ex:Page - 3 - $スタート= 0; $ end = 5; selectInfo(); – mcbeav

1

必要なものはすべてmysqli_prepareのマニュアルに説明されています。

関連する問題