Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 只向我的SQL数据库写入一行_Php_Mysql_Sql - Fatal编程技术网

Php 只向我的SQL数据库写入一行

Php 只向我的SQL数据库写入一行,php,mysql,sql,Php,Mysql,Sql,我试图将一行从一个表移动到另一个表,但它不起作用。它的第一行很好,但我没有什么可以让其余的回声出来好,只是不进入我的数据库 $result = mysql_query("SELECT * FROM coffees WHERE id='$id'"); while($row = mysql_fetch_array($result)) { mysql_query("INSERT INTO coffeeorder(coffeetype,topping,shots,milk,size,price)

我试图将一行从一个表移动到另一个表,但它不起作用。它的第一行很好,但我没有什么可以让其余的回声出来好,只是不进入我的数据库

$result = mysql_query("SELECT * FROM coffees WHERE id='$id'");

while($row = mysql_fetch_array($result)) {
  mysql_query("INSERT INTO coffeeorder(coffeetype,topping,shots,milk,size,price) VALUES ('coffeetype', 'topping', 'shots', 'milk', 'Size', 'price')");

  echo $row['coffeetype'] . " " . $row['topping']." " . $row['shots']." " . $row['milk']." " . $row['size']." $" . $row['price']."<br />";

  $totalPrice = $totalPrice + $row['price'];
}
$result=mysql\u查询(“从咖啡中选择*,其中id='$id');
while($row=mysql\u fetch\u数组($result)){
mysql_查询(“插入咖啡订单(咖啡类型、顶部、镜头、牛奶、大小、价格)值(‘咖啡类型’、‘顶部’、‘镜头’、‘牛奶’、‘大小’、‘价格’)”);
echo$row['coffeetype']....$row['topping'.....$row['shots'.]..$row['milk'.]...$row['size'..“$”.$row['price'.“
”; $totalPrice=$totalPrice+$row['price']; }
你知道为什么这不起作用吗

完整代码:

<?php 
session_start();
if(isset($_SESSION["id"])){

$id = $_SESSION["id"];
$name = $_SESSION["name"];


}else {header('Location: index.php');}

 include_once "dbcon.php";
    $totalPrice = 0;
    $result = mysql_query("SELECT * FROM coffees WHERE id='$id'");
while($row = mysql_fetch_array($result))
  {

      mysql_query("INSERT INTO `coffeeorder`(`coffeetype`,`topping`,`shots`,`milk`,`size`,`price`) VALUES ('".$row['coffeetype']."', '".$row['topping']."', '".$row['shots']."', '".$row['milk']."', '".$row['size']."', '".$row['price']."')");




  echo $row['coffeetype'] . " " . $row['topping']." " . $row['shots']." " . $row['milk']." " . $row['size']." $" . $row['price']."<br />";

  $totalPrice = $totalPrice + $row['price'];

  }
    echo "Total Price $".$totalPrice;


?>

请尝试移动到PDO:

<?php
    $db = new PDO('mysql:host=localhost;dbname=testdb;charset=UTF-8', 'username', 'password', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    $stmt = $db->query("SELECT * FROM coffees WHERE id=:id");
    $stmt->execute(array(':id' => $id));
    $row = $stmt->fetch(PDO::FETCH_ASSOC);

    $stmt = $db->query("INSERT INTO coffeeorder(coffeetype,topping,shots,milk,size,price) VALUES (:coffeetype, :topping, :shots, :milk, :size, :price)");
    $stmt->execute(array(':coffeetype' => $row['coffeetype'], ':topping' => $row['topping'],':shots' => $row['shots'],':milk' => $row['milk'],':size' => $row['size'],':price' => $row['price']));
    echo $row['coffeetype'] . " " . $row['topping']." " . $row['shots']." " . $row['milk']." " . $row['size']." $" . $row['price']."<br />";

    $totalPrice = $totalPrice + $row['price'];

?>

请尝试移动到PDO:

<?php
    $db = new PDO('mysql:host=localhost;dbname=testdb;charset=UTF-8', 'username', 'password', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    $stmt = $db->query("SELECT * FROM coffees WHERE id=:id");
    $stmt->execute(array(':id' => $id));
    $row = $stmt->fetch(PDO::FETCH_ASSOC);

    $stmt = $db->query("INSERT INTO coffeeorder(coffeetype,topping,shots,milk,size,price) VALUES (:coffeetype, :topping, :shots, :milk, :size, :price)");
    $stmt->execute(array(':coffeetype' => $row['coffeetype'], ':topping' => $row['topping'],':shots' => $row['shots'],':milk' => $row['milk'],':size' => $row['size'],':price' => $row['price']));
    echo $row['coffeetype'] . " " . $row['topping']." " . $row['shots']." " . $row['milk']." " . $row['size']." $" . $row['price']."<br />";

    $totalPrice = $totalPrice + $row['price'];

?>

您还可以在一个查询中执行插入和选择操作:

INSERT INTO `coffeeorder` (
    `coffeetype`,
    `topping`,
    `shots`,
    `milk`,
    `size`,
    `price`
)
SELECT
    `coffeetype`,
    `topping`,
    `shots`,
    `milk`,
    `size`,
    `price`
FROM `coffees`
WHERE `id`='$id'
但是,这会导致在多个表中重复数据。你真正应该做的是将你的桌子设置得稍微不同,在咖啡订购表中,不要存储关于咖啡的所有信息,只存储咖啡的id。然后在查询订单时,您可以加入咖啡桌并获取咖啡信息

SELECT
   `coffee`.`coffeetype`,
   `coffee`.`topping`,
   `coffee`.`shots`,
   `coffee`.`milk`,
   `coffee`.`size`,
   `coffee`.`price`
FROM `coffeeorder`
    JOIN `coffee`
        ON `coffee`.`id`=`coffeeorder`.`coffee_id`

这是数据库最擅长的功能(我想除了存储数据之外)。

您还可以在一个查询中执行插入和选择操作:

INSERT INTO `coffeeorder` (
    `coffeetype`,
    `topping`,
    `shots`,
    `milk`,
    `size`,
    `price`
)
SELECT
    `coffeetype`,
    `topping`,
    `shots`,
    `milk`,
    `size`,
    `price`
FROM `coffees`
WHERE `id`='$id'
但是,这会导致在多个表中重复数据。你真正应该做的是将你的桌子设置得稍微不同,在咖啡订购表中,不要存储关于咖啡的所有信息,只存储咖啡的id。然后在查询订单时,您可以加入咖啡桌并获取咖啡信息

SELECT
   `coffee`.`coffeetype`,
   `coffee`.`topping`,
   `coffee`.`shots`,
   `coffee`.`milk`,
   `coffee`.`size`,
   `coffee`.`price`
FROM `coffeeorder`
    JOIN `coffee`
        ON `coffee`.`id`=`coffeeorder`.`coffee_id`

这是数据库最擅长的功能(我想不是存储数据)。

选择行,插入行,然后删除行-问题出在哪里?请避免在新代码中使用
mysql\ucode>函数。请改用PDO或MySQLi。请停止在新应用程序中使用
mysql\u query
。如果使用不当,这个尘土飞扬、过时的界面可能会对您的应用程序造成严重损害。在创建一个充满漏洞的应用程序之前,您需要了解它会被完全打开。较新的接口,如
mysqli
和PDO,使编写和执行查询变得非常容易,因此学习查询所需的短时间是值得的。那么你说你想移动一行?那么,为什么要进行
while
循环呢?此外,是否存在任何警告或错误?是否已启用
显示错误
?“第一行”是什么意思?很公平。我觉得这个帖子里已经有足够多的胡说八道了。是时候建议您发布这两个表的数据结构了。选择行,插入行,然后删除行-有什么问题?请避免在新代码中使用
mysql\uu
函数。请改用PDO或MySQLi。请停止在新应用程序中使用
mysql\u query
。如果使用不当,这个尘土飞扬、过时的界面可能会对您的应用程序造成严重损害。在创建一个充满漏洞的应用程序之前,您需要了解它会被完全打开。较新的接口,如
mysqli
和PDO,使编写和执行查询变得非常容易,因此学习查询所需的短时间是值得的。那么你说你想移动一行?那么,为什么要进行
while
循环呢?此外,是否存在任何警告或错误?是否已启用
显示错误
?“第一行”是什么意思?很公平。我觉得这个帖子里已经有足够多的胡说八道了。是时候建议你发布两个表的数据结构了。我就是这样做的,但还是第一行,然后什么都没有。不!这不是组合查询的方式。这甚至与有效的SQL相差很远。我猜他投了反对票,因为你最初把mysql_uuu任何东西都放进去了。但不是每个人都有选择的余地。有时我继承了大量的php项目,这些项目需要几个月的时间来重写,而且没有预算。。。我觉得这很粗鲁。我在投票。如果你必须使用
mysql\u query
,那么你必须使用
mysql\u real\u escape\u string
,没有借口。最初的示例甚至没有费心转义,它只是将
$row
变量中的值挂在那里,这意味着如果这些字段中的任何一个包含
,整个过程都会爆炸。这个PDO版本是正确的方法。我就是这样做的,但仍然只是第一排,然后什么都没有!这不是组合查询的方式。这甚至与有效的SQL相差很远。我猜他投了反对票,因为你最初把mysql_uuu任何东西都放进去了。但不是每个人都有选择的余地。有时我继承了大量的php项目,这些项目需要几个月的时间来重写,而且没有预算。。。我觉得这很粗鲁。我在投票。如果你必须使用
mysql\u query
,那么你必须使用
mysql\u real\u escape\u string
,没有借口。最初的示例甚至没有费心转义,它只是将
$row
变量中的值挂在那里,这意味着如果这些字段中的任何一个包含
,整个过程都会爆炸。这个PDO版本是正确的方法。