我已经尝试了这100种方式并且遍布网络:
<?php
$dbname = 'pdartist2';
$table = 'subcategories';
// query
$result = mysql_query('SELECT SubHeaderText FROM subcategories where SCID = $SCID');
while($row = mysql_fetch_row($result))
{
foreach($row as $cell)
"$cell";
}
mysql_free_result($result);
?>
我正在尝试传递参数$ SCID这是一个数字,但我无法获得语法。如果我把一个数字放在它的工作。但我需要能够传递一个变量。
答案 0 :(得分:2)
在PHP中使用单引号不允许传递变量。将您的查询行设为:
$result = mysql_query("SELECT SubHeaderText FROM subcategories where SCID = $SCID");
答案 1 :(得分:1)
您需要在整个查询周围使用双引号。我还添加了错误检查,因为这对于检查它是否按预期工作非常有用
$result = mysql_query("SELECT SubHeaderText FROM subcategories where SCID = '$SCID' ") or die(mysql_error());
答案 2 :(得分:0)
问题是你在查询周围使用单引号,PHP不会用单引号解释变量,只能用双引号解释。因此,您可以通过以下两种方式之一编写查询。
$result = mysql_query("SELECT SubHeaderText FROM subcategories where SCID = $SCID")
OR
$result = mysql_query('SELECT SubHeaderText FROM subcategories where SCID = '.$SCID)
使用双引号方法看起来更干净,但我个人喜欢使用带引号的单引号,所以我的编辑器会强调我在那里使用变量。
答案 3 :(得分:0)
关于将单引号更改为双引号的两个答案是正确的,但是我发现完成您正在做的最好的方法是使用单引号作为sql,然后简单地将变量附加到字符串,例如:
$result = mysql_query('SELECT SubHeaderText FROM subcategories where SCID = ' . $SCID);
// Or
$result = mysql_query('SELECT SubHeaderText FROM subcategories where SCID = ' . $SCID . ' AND someCol = ' . $someValue);
正如Nick Q.在评论中提到的那样,你应该准备你的变量进入SQL,这样你就不会最终成为SQL注入攻击的目标。我的建议是学习PDO,你可以在那里准备你的陈述然后绑定价值观。