【发布时间】:2011-11-08 04:54:22
【问题描述】:
我有一个这样的mysql表(sql):
如果不存在则创建表
silver_and_pgm(_metal_namevarchar(30) 非空,_bidvarchar(30) 非空,_changevarchar(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,请参阅我的答案。