简体   繁体   中英

Number of variables doesn't match number of parameters in prepared statements

$sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = '?'";
$stmt = $db->prepare($sql);
$stmt->bind_param("s", $database);
$stmt->execute();
$resultSet = $stmt->get_result();

It says " Warning : mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in..."

Can somebody explain what's wrong? $database is a string.

If you use ? as a placeholder, don't use ticks ' s

$sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = ?";
$stmt = $db->prepare($sql);
$stmt->bind_param('s', $database);
$stmt->execute();
$resultSet = $stmt->get_result();

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