尝试编写一个php mysql连接和查询。这是一个错误"注意:使用未定义的常数购买 - 假设'购买'"尝试了没有解决的反引号。有人可以告诉我需要纠正的地方。
<?php
$host="localhost";
$port=3306;
$socket="";
$user="xxxx";
$password="xxxx";
$dbname="amazon";
$con = new mysqli($host, $user, $password, $dbname, $port, $socket)
or die ('Could not connect to the database server' . mysqli_connect_error());
$query = "SELECT SUM(`quantity-purchased`), DATE(`purchase-date`),Tally_SKU FROM daily_orders GROUP BY DATE(daily_orders.`purchase-date`),Tally_SKU";
if ($stmt = $con->prepare($query)) {
$stmt->execute();
$stmt->bind_result($quantity-purchased, $purchase-date, $Tally_SKU);
while ($stmt->fetch()) {
//printf("%s, %s, %s\n", $quantity-purchased, $purchase-date, $Tally_SKU);
}
$stmt->close();
}
//$con->close();
?>
答案 0 :(得分:1)
最好的解决方案是使用适当的变量名称。它们不需要与数据库的列名相同。
if ($stmt = $con->prepare($query)) {
$stmt->execute();
$stmt->bind_result($quantityPurchased, $purchaseDate, $TallySKU);
while ($stmt->fetch()) {
printf("%s, %s, %s\n", $quantityPurchased, $purchaseDate, $TallySKU);
}
}
但是,您可以在变量名称中使用连字符,但如果将它们用大括号括起来不推荐:
if ($stmt = $con->prepare($query)) {
$stmt->execute();
$stmt->bind_result(${'quantity-purchased'}, ${'purchase-date'}, $Tally_SKU);
while ($stmt->fetch()) {
printf("%s, %s, %s\n", ${'quantity-purchased'}, ${'purchase-date'}, $Tally_SKU);
}
}
答案 1 :(得分:0)
变量名中不允许使用连字符。
变量的一些规则:
1)变量应仅以字母(a-zA-Z)或下划线开始。
2)变量不应包含连字符。
3)变量不应包含空格。
4)变量不应包含下划线以外的任何特殊字符。