MYSQLI bind_param与Strato

时间:2015-02-09 09:22:43

标签: php mysql mysqli

我正在尝试为主持人www.strato.de设置一个mysqli Dummy。 我的问题是,在准备查询然后绑定params时,我的MYSQLI查询是一种非常奇怪的行为。

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的问题。

问题出现了将id与$ select_stmt-> 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-Version:5.5.4

     

PHPMYADMIN:4.2.12

     

Apache:2.2.29(Unix)

感谢您的帮助! 我很感激每一个答案。

1 个答案:

答案 0 :(得分:1)

解决

我发现只允许在bind_param()中使用变量进行绑定。

像:

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