-1

我有这段代码由于某种原因不起作用

    $con = mysql_connect("$server", "$user", "$pass");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    mysql_select_db('$db', $con); 

 // BLOCK 1   
    $supplier=$_POST["supplier"];
    $supplierNowBalance =$_POST["supplierNowBalance"];
    $supplierBalance=$supplierNowBalance - $supplier; 


    mysql_query("UPDATE inv SET balance='".$supplierBalance."' WHERE username='supplier' AND name='bingo'");

    echo $supplierBalance;

// END OF BLOCK 1

UPDATE 语句之前和之后的所有内容都有效。我将更新语句复制到 PHPMyAdmin,它更新得很好!我不明白。由于某种原因 php 没有运行 mysql_query

一些提示:我在程序中几乎没有这个代码块,所以它会遍历所有的帖子和计算,以及更新我已经尝试了 mysql 查询的所有可能组合(有和没有 's )

###############ANSWER_ _ __ _ __ _ __

感谢您的回答,但我想通了。显然 PHP 迫切希望在连接字符串周围有双引号 ""。在第 6 行,当我描述数据库变量时

mysql_select_db('$db', $con); 

我有单 qoute,我将其更改为双 qoute 和 bam,它有效,谢谢

 mysql_select_db("$db", $con); 
4

2 回答 2

2

balancenumeric吗?你不应该用单引号括起来。

mysql_query("UPDATE inv SET balance= " . $supplierBalance . " WHERE username='supplier' AND name='bingo'");

使用PDO使其无懈可击SQL INJECTION

<?php

// other codes

$stmt = $dbh->prepare("UPDATE inv SET balance = ? WHERE username = ? AND name = ?");
$stmt->bindParam(1, $supplierBalance);
$stmt->bindParam(2, 'supplier');
$stmt->bindParam(3, 'bingo');

$stmt->execute();

// other codes
?>
于 2012-08-07T23:17:11.973 回答
0

感谢您的回答,但我想通了。显然 PHP 迫切希望在连接字符串周围有双引号 ""。在第 6 行,当我描述数据库变量时

mysql_select_db('$db', $con); 

我有单 qoute,我将其更改为双 qoute 和 bam,它有效,谢谢

 mysql_select_db("$db", $con); 
于 2012-08-08T11:29:40.867 回答