PHP MySQLi输出问题
我的PHP脚本有一个问题,我想从数据库中输出“name”中的数据,但它不起作用 代码如下:PHP MySQLi输出问题,php,mysql,mysqli,Php,Mysql,Mysqli,我的PHP脚本有一个问题,我想从数据库中输出“name”中的数据,但它不起作用 代码如下: $servername = "localhost"; $username = "root"; $password = ""; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT * FROM products WHERE id = ?");
$stmt->bind_param("s", $_GET['id']);
$stmt->execute();
$result = mysqli_fetch_assoc($stmt);
echo $result['name'];
错误是:
警告:mysqli_fetch_assoc()希望参数1是mysqli_result,对象在第95行的C:\xampp\htdocs\p\cart\index.php中给出
你知道我做错了什么吗?如果能帮上忙,我们将不胜感激
感谢您的建议使用bind_result()
.After$stmt->execute()
$stmt-execute()
返回一个mysql\u stmt
对象
mysqli\u fetch\u assoc()
需要一个mysql\u结果
对象作为参数,而不是mysql\u stmt
对象
因此,要在准备好并执行查询后使用mysqli_fetch_assoc(),您必须使用$stmt->get_result()
将mysql\u stmt
对象转换为mysql\u结果
对象,如下所示
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT * FROM products WHERE id = ?");
$stmt->bind_param("s", $_GET['id']);
$stmt->execute();
$result = mysqli_fetch_assoc($stmt);
$row = $result->fetch_assoc();
echo $result['name'];
您还可以使用$stmt->bind_result($name)
但要做到这一点,我们需要知道查询返回列的顺序。或者您需要使您的查询更加具体
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT name FROM products WHERE id = ?");
$stmt->bind_param("s", $_GET['id']);
$stmt->execute();
$stmt->bind_result($name);
$stmt->fetch();
echo 'Name is ' . $name;
您应该显示错误或查看服务器错误日志。您可以将mysqli设置为抛出异常,也可以在每次mysqli调用后检查错误。我的错误是警告:mysqli_fetch_assoc()希望参数1是mysqli_result,对象在第95行的C:\xampp\htdocs\p\cart\index.php中给出
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT name FROM products WHERE id = ?");
$stmt->bind_param("s", $_GET['id']);
$stmt->execute();
$stmt->bind_result($name);
$stmt->fetch();
echo 'Name is ' . $name;