【问题标题】:mysql update query (containing 'where' syntax) not workingmysql更新查询(包含'where'语法)不起作用
【发布时间】:2011-11-08 04:54:22
【问题描述】:

我有一个这样的mysql表(sql):

如果不存在则创建表silver_and_pgm ( _metal_name varchar(30) 非空, _bid varchar(30) 非空, _change varchar(30) 非空 ) ENGINE=MyISAM 默认字符集=latin1;

--

-- 转储表silver_and_pgm的数据

插入silver_and_pgm_metal_name_bid_change)值 ('银\r\n', '555', '-0.22\r\n'), ('白金\r\n', '555', '-9.00\r\n'), ('钯\r\n', '555', '0.00\r\n'), ('铑\r\n', '555', '0.00\r\n');

我正在使用以下代码更新包含 metal_name 为 Silver 的行

<?php

$username = "root";
$password = "1234";
$database = "kitco";
$con=mysql_connect(localhost,$username,$password);
mysql_select_db($database) or die( "Unable to select database");

$bid = '101010';
$metal_name = 'Silver';

$query = "update silver_and_pgm set _bid='$bid' where _metal_name='$metal_name'";
//$query2 = "update silver_and_pgm set _bid='444'";;
echo $query."<br>";
$result = mysql_query($query);
if(!$result)echo "error";

?>

但是 $query 不起作用。如果我使用 $query2 它工作正常。如果我直接在 phpmyadmin 的 SQL 中使用相同的查询,结果是相同的。 $query 有什么问题。我认为它是正确的。 有没有人能找到这个bug??

【问题讨论】:

  • 您的 matel_name 值包含 \r\n 作为 matel_name 的一部分,因此完全匹配 _matel_name='Silver' 不会搜索要更新的特定记录(如果全部) matel_name 遵循相同的模式,您也可以使用 like,请参阅我的答案。

标签: php mysql


【解决方案1】:

您在数据库中的 _metal_name 中似乎有一个换行符,SQL 查询显示为 Silver\r\n

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多