MySQL请求在String上返回一个空结果



我有一张表格,里面有预订系统的凭证。当我尝试按代码字符串选择一行时,它会返回一个空结果。但我只是ctrl+C我想选择的字符串,这真的很奇怪。

在这里,我正在复制代码字符串,以便在之后选择它

在我尝试用选择它之后

SELECT * FROM `vouchers` WHERE code = "S723-452Q-3486"

它给我返回了一个空结果

在这里,它返回给我一个空结果

但是!当我编辑代码字符串后面有空格的行,并在它开始SELECT后立即将其删除时。

在代码后添加一个空格-保存它,并在后删除它

返回SELECT 的结果

所以我真的不知道为什么会这样,但当我向你展示我是如何将这些行添加到数据库中时,可能会帮助你理解。

我把乘法行放在<textarea id="codes" name="codes" rows="4" cols="35" required></textarea>中,然后在PHP中用分离每一行

`

//var_dump($_POST);
$name = $_POST['name'];
$discount = $_POST['discount'];
$startTime = $_POST['startTime'];
$endTime = $_POST['endTime'];
$timeAvailable = $startTime."'".$endTime;
$max_times = $_POST['max_times'];
$expDate = $_POST['expDate'];
$ppl_amount = $_POST['ppl_amount'];
$days = "";
if ($_POST['Monday']) {
$days=$days."Monday'";
# code...
}
if ($_POST['Tuesday']) {
$days=$days."Tuesday'";
# code...
}
if ($_POST['Wednesday']) {
$days=$days."Wednesday'";
# code...
}
if ($_POST['Thursday']) {
$days=$days."Thursday'";
# code...
}
if ($_POST['Friday']) {
$days=$days."Friday'";
# code...
}
if ($_POST['Saturday']) {
$days=$days."Saturday'";
# code...
}
if ($_POST['Sunday']) {
$days=$days."Sunday'";
# code...
}
$days = rtrim($days, "'");
//echo $days;
$codes = "";
if (isset($_POST['codes'])) {
$codes = explode("n", $_POST["codes"]);
}

foreach ($codes as $code) {
$voucherQuery = 'INSERT INTO vouchers (name, discount, daysAvailable, timeAvailable, code, max_times, used, expiration_date, ppl_amount)
VALUES ("'.$name.'", "'.$discount.'", "'.$days.'", "'.$timeAvailable.'", "'.$code.'", "'.$max_times.'", 0, "'.$expDate.'", "'.$ppl_amount.'")';
$result = $db_handle->getResult($voucherQuery); }

`

所以当我把它添加到DB中时,一切看起来都很好,但当我尝试使用一个代金券时,它显示了一个错误,因为我在PHP代码中使用的SELECT返回了一个空结果,然后我尝试直接将SQL查询输入到MySQL中,得到了相同的结果。

我从excel表格中复制代码,并将其ctrl+V输入文本区域。

" " (ASCII 32 (0x20)), an ordinary space.
"t" (ASCII 9 (0x09)), a tab.
"n" (ASCII 10 (0x0A)), a new line (line feed).
"r" (ASCII 13 (0x0D)), a carriage return.
"" (ASCII 0 (0x00)), the NUL-byte.
"x0B" (ASCII 11 (0x0B)), a vertical tab.

参考PHP微调

回车隐藏在excel单元格中,因此当您复制它时,甚至当您导入CSV时,它也会随之出现。有很多方法可以处理它,但我使用的是PHP修剪。它将清除所有不需要的字符和空格。

if (isset($_POST['codes'])) { 
$codes = explode("n", $_POST["codes"]);}

使用trim((而不是爆炸。

最新更新