我有一张桌子,上面有用于预订系统的凭证。当我尝试按代码字符串选择一行时,返回的结果为空。但是我只是ctrl + C我想要选择的字符串,这真的很奇怪。
Here I'm copying code string to select it after
然后我尝试通过以下方式选择它:
SELECT * FROM `vouchers` WHERE code = "S723-452Q-3486"
它返回一个空结果
Here it returns me an empty result
但是!当我在代码字符串后面编辑带有空格的行,并在开始选择它之后立即将其删除。
Add a space after the code- save it, and remove it after
所以我真的不知道为什么会这样,但是也许当我向您展示如何将这些行添加到数据库中时,它可能会帮助您理解。
我将多行放入<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); }
`
因此,当我将其添加到数据库时,一切看起来都很好,但是当我尝试使用一个凭单时,它显示了一个错误,因为在PHP代码中使用的SELECT返回空结果,因此我尝试直接输入SQL查询进入MySQL并得到相同的结果。
我从excel表中复制代码,然后按Ctrl + V组合键将其复制到文本区域。
答案 0 :(得分:0)
" " (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.
"\0" (ASCII 0 (0x00)), the NUL-byte.
"\x0B" (ASCII 11 (0x0B)), a vertical tab.
引用PHP trim
回车符隐藏在excel单元格内,因此在复制时,回车符也随之附带,即使您导入CSV也是如此。处理它的方法很多,但我使用的是PHP trim。它将清除所有不需要的字符和空格。
if (isset($_POST['codes'])) {
$codes = explode("\n", $_POST["codes"]);}
使用trim()而不是爆炸。