我正在尝试使用MySQLi创建一个准备好的语句并对数据库运行它,目前我正在获取带有结果元数据的列名,但是我没有将任何结果打印到我的HTML表和{{1}返回0.我运行了一些测试回声,mysqli_stmt_num_rows($statement)
确实从文本框中获得了正确的值,当我在数据库上运行查询时直接替换?有一个值,它确实返回一些数据。知道我为什么不向MySQLi获取数据吗?
`
$value
答案 0 :(得分:1)
不要引用你的占位符,绑定会为你做到:
使用
$query = "SELECT * FROM City WHERE name LIKE ?";
并在您要绑定的变量中包含通配符%
,而不是在预准备语句中
并且由于mysqli_stmt_bind_param()要求参数通过引用传递,您需要在绑定之前附加%
$value .= '%';
mysqli_stmt_bind_param($statement, "s", $value);
答案 1 :(得分:0)
占位符不会在引号内替换。您可以使用CONCAT
附加通配符。
$query = "SELECT * FROM City WHERE name LIKE CONCAT(?, '%')";