Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查文本是否匹配php mysql(初学者)_Php_Mysql - Fatal编程技术网

检查文本是否匹配php mysql(初学者)

检查文本是否匹配php mysql(初学者),php,mysql,Php,Mysql,很抱歉这个非常初级的问题。。。我有一张像这样的桌子 | id | block_1 | block_2| ------------------------- | 1 | Mark | John | | 2 | Antony | | ------------------------- 我想检查单元格中的文本是否与我的变量匹配,例如$name: ... $sql = "SELECT * FROM my_table WHERE id='1'"; $res = mysql

很抱歉这个非常初级的问题。。。我有一张像这样的桌子

| id | block_1 | block_2|
-------------------------
| 1  | Mark    | John   |
| 2  | Antony  |        |
------------------------- 
我想检查单元格中的文本是否与我的变量匹配,例如$name:

...
$sql = "SELECT * FROM my_table WHERE id='1'";
$res = mysql_query($sql, $connection);
$row = mysql_fetch_array($res);


$block1 = $row['block_1'];
$name = 'Mark';

if ($block1 == $name)
{
echo 'yes';
}
else
{
echo 'no';
}

但我认为我的推理是错误的,我是初学者。。。欢迎所有解决方案

您只是缺少一个报价而已

$sql = "SELECT * FROM my_table WHERE id='1'";

您可以使用请求的变量计算结果

$sql = "SELECT COUNT(*) as total FROM my_table WHERE id='1' AND block_1='Mark'";
$res = mysql_query($sql, $connection);
$row = mysql_fetch_assoc($res);
echo $row['total'] > 0 ? 'yes' : 'no'; 

当您使用
mysql\u fetch\u array
时,您不能使用
$row[COLUMN\u NAME]

您必须使用
$row[COLUMN\u INDEX]
或使用
mysql\u fetch\u assoc
方法按列名提取

  $row = mysql_fetch_assoc($res);
  $block1 = $row['block_1'];  
请阅读

中的更多内容,尝试以下方法:

$sql = 'SELECT * FROM my_table WHERE id="1"';
在单引号的内侧使用双引号可能会有所帮助。这是没有必要的…但它总是帮助我在实践中试图跟踪他们。如果您选择了一个,请记住要坚持下去……您在下面代码的其余部分使用了单引号:

$name = 'Mark';
echo 'yes';
以上评论是正确的……
这是一个贬低MySQL调用的方式,请考虑如下: 将mysql_query()切换为PDO::query(),并学习其功能将使您了解最新情况


祝你好运。

你应该避免使用mysql_*函数。它们不再安全使用,很快将从整个语言中删除。旁注:如果您正在学习,不要浪费时间研究遗留的mysql扩展,它已经被弃用多年,不再是最新PHP版本的一部分。这就像在罗马度假前学习拉丁语。谢谢你的建议你应该解释你的答案如果他想使用variable;,为什么不使用
block_1='Mark'
而不是
block_1='name}'
不要为我工作,但打开另一个思路,谢谢你是的,这项工作,但不是为我,也许我在插入我的记录时有相同的错误,可能是unicode问题等等。再次感谢您的单引号与双引号不仅仅是偏好的问题:@EatPeanutButter…非常正确-我认为您的链接非常有用。