简体   繁体   中英

Binding parameters in mysql

I'm trying to learn about binding parameters in MySQL. I tried this test but I'm getting the error "Call to a member function bind_param() on a non-object".

Am I doing something wrong?

Here is the updated code:

$sql = "INSERT INTO users (field1, field2, field3) VALUES (?, ?, ?)";

connect();
$stmt = $conn->prepare($sql);
$stmt->bind_param("sss", $value1, $value2, $value3);
$value1 = "test1";
$value2 = "test2";
$value3 = "test3";
$stmt->execute();

Here is the connect() function:

function connect(){
    global $conn;
    $conn = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME);
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
}

To bind params in a prepared query in PDO, pass an array containing your params to the execute function :

$result = $conn->prepare($sql);
$result->execute(array($value1, $value2, $value3));

UPDATE

For the mysqli version :

connect();
$result = $conn->prepare($sql);
$result->bind_param('sss', $value1, $value2, $value3);
$result->execute();

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM