2015-02-09 89 views
0

我想爲主機www.strato.de設置一個mysqli虛擬。 我的問題是,當我準備查詢然後綁定參數時,我的MYSQLI查詢了一個非常奇怪的行爲。MYSQLI bind_param與Strato

define("HOST", "rdbms.strato.de");   // Der Host mit dem du dich verbinden willst. 
define("USER", "USER");     // Der Datenbank-Benutzername. 
define("PASSWORD", "PASSWORD");  // Das Datenbank-Passwort. 
define("DATABASE", "DATABASE");   // Der Datenbankname. 

// Create connection to Database 
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE); 
mysqli_set_charset ($mysqli,"utf8"); 
if(mysqli_connect_errno()){ 
    echo "Verbindung fehlgeschlagen: ".mysqli_connect_error(); 
} 
else { 
    echo "success"; 
} 

連接運行沒有任何問題。

if ($select_stmt = $mysqli->prepare("SELECT name FROM accounts WHERE id = 1")) { 
     $select_stmt->execute(); 
     $select_stmt->store_result(); 
     $select_stmt->bind_result($name); 
     $select_stmt->fetch(); 
} 
else { 
    echo $mysqli->error(); 
} 
echo "Name: " . $name; 

選擇aacount數據庫的名稱也沒有問題,直接在sql查詢中綁定id。

,問題就出現了以$ select_stmt-綁定ID> bind_param()

if ($select_stmt = $mysqli->prepare("SELECT name FROM accounts WHERE id = ?")) { 
    $select_stmt->bind_param('s', '1'); 
    $select_stmt->execute(); 
    $select_stmt->store_result(); 
    $select_stmt->bind_result($name); 
    $select_stmt->fetch(); 
} 
else { 
    echo $mysqli->error(); 
} 
echo "Name: " . $name; 

的行爲就像是一個在無窮遠環。 但是根本不顯示echo "Name: " . $name;echo $mysqli->error();也是如此。

更多信息:

的MySQL版本:5.5.4

PHPMYADMIN:4.2.12

的Apache:2.2.29(Unix的)

謝謝你你的幫助! 我希望每一個答案。

回答

1

解決

我發現,你只能使用變量在bind_param結合()。

像:

$id= '1'; 
$select_stmt->bind_param('s',$id);