我编写了一个带有数据库连接的PHP脚本,它看起来工作正常。
我遇到的问题是使用SELECT
语句从数据库中获取值并将这些值赋给PHP变量。
这是我的桌子:
如果我将SQL复制到PHPMyAdmin中,就会得到正确的结果,因此我信任查询本身。
如果我写下:
echo $result;
我做错什么了?
这是我的全部代码:
<?php
$servername = "XXXXXX";
$username = "XXXXXX";
$password = "XXXXX";
$dbname = "XXXXXX";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$test_code = $_GET['code'];
$product_name = $_GET['product'];
// sql to create table
$sql = "CREATE TABLE IF NOT EXISTS code_ever (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
produkt VARCHAR(50) NOT NULL,
code VARCHAR(30) NOT NULL
)";
if ($conn->query($sql) === TRUE) {
} else {
}
// sql to create table
$sql = "CREATE TABLE IF NOT EXISTS code_scanned (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
produkt VARCHAR(50) NOT NULL,
code VARCHAR(30) NOT NULL
)";
if ($conn->query($sql) === TRUE) {
} else {
}
$query = "SELECT code FROM code_ever WHERE code = 'XKBKNABJK'";
$result = mysqli_query($conn, $query);
if($result)
{
echo $result;
}
else
{
echo("Sorry:".mysqli_error($conn));
}
$conn->close();
?>
最佳答案
你得去拿结果。
$query = "SELECT code FROM code_ever WHERE code = 'XKBKNABJK'";
if ($result = mysqli_query($conn, $query)) {
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
echo $row["code"];
}
/* free result set */
mysqli_free_result($result);
}
http://php.net/manual/en/mysqli-result.fetch-assoc.php
除了获取结果之外,还应该重新设计表。每个“表单元格”不能有多个值。例如,产品的大小/颜色等有逗号分隔的值。您应该将这些属性作为单独的属性放在表中,或者甚至放在单独的表中。
例子: