【发布时间】:2016-11-12 12:44:49
【问题描述】:
在这段代码中,我试图测试这种检查数据的布尔方法。这个项目的目的是为我们的校园制定一个食品预算系统。在这个初级阶段,我设置了一个表,它有一个布尔值来检测不同的选项。
<?php
$db_host = "db4free.net";
$db_name = "testable";
$db_username = "muymuy1";
$db_password = "Muymuy2002";
$db = new PDO("mysql:host=$db_host; dbname=$db_name; charset=utf8", "$db_username", "$db_password") or die("error");
$sql = "INSERT INTO `food` (name, id, price, isForSingle, isForPair, isForSharing, isFullMeal) VALUES ('Sanwhich 234', NULL, 110, 1, 0, 0, 0)";
$db->query($sql) or die("Something happened");
$sql = "DELETE FROM `food` WHERE name LIKE '%sanwhich%'";
$stmt = $db->query($sql) or die("error 4");
$sql = "SELECT * FROM `food` WHERE isForSingle=0";
$stmt = $db->query($sql) or die("error 5");
$data = array();
$count = 0;
if($stmt !== false)
{
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$data[$count] = array(
"id" => $row['id'],
"name" => $row['name'],
"price" => $row['price'],
"isFullMeal" => $row['isFullMeal'],
"isForSharing" => $row['isForSharing'],
"isForPair" => $row['isForPair'],
"isForSingle" => $row['isForSingle'],
);
$count += 1;
}
}
echo '<pre>'; print_r($data); echo '</pre>';
?>
表格数据:
但是,我的问题是这不起作用。一个 0 与 1 和 1 与 0 混淆,当我使用 WHERE isForPair = 0 搜索时,出现的是具有 1 的数据行,而当我搜索 WHERE isForPair = 1 时,出现的是具有 0 的数据行。
1) ... WHERE isForPair = 0(输出:isForPair = 1 的结果)
2) ... WHERE isForPair = 1(输出:无,尽管表中的所有内容都是 isForPair = 1)
【问题讨论】:
-
请将
CREATE TABLE...语句添加到您的问题中 -
顺便说一句:您应该确保在您的
DELETE中区分大小写:DELETE FROM food WHERE LOWER(name) LIKE '%sanwhich%' -
哦,谢谢您的建议 :) 但是,这些 CREATE TABLE 事情是静态完成的,就像 PHPmyadmin.co 一样,因此我没有添加任何 CREATE TABLE 语句,其次,删除事情没有在我的代码中确实发挥了很大作用,它是用于测试 DELETE,而不是我现在的问题 [不要试图粗鲁,老实说 :)]
-
他的意思是
show create table xxx的输出。它以何种方式创建并不重要。如果你在 phpmyadmin 中输入你的 select-query 会发生什么? -
我很抱歉我的无知,但我没有得到