mysql_query("SELECT * FROM foo WHERE id ='$foo' OR id = '$foo2");
这行不通。
基本上,我希望能够在 id 是一个变量的值或另一个变量的值时选择它。
Cảm ơn.
编辑:ID 列是数字。
1 Câu trả lời
正如其他人所说并且您已确认,问题在于您使用字符串文字与数字列进行比较。为了让它工作,查询应该看起来像
mysql_query("SELECT * FROM foo WHERE id =$foo OR id = $foo2");
但是,这个解决方案有非常非常糟糕的代码味道!
首先,这就是为什么 TRONG
存在:能够写
mysql_query("SELECT * FROM foo WHERE id IN ($foo, $foo2)");
其次,您是否在查询中注入(inject)了未转义的字符串?如果是,则您的代码容易受到 sql injection 的攻击! 转义并引用你的变量是安全的,像这样(在一般情况下):
$query = sprintf("SELECT * FROM foo WHERE id IN ('%s', '%s')",
mysql_real_escape_string($foo),
mysql_real_escape_string($foo2));
mysql_query($query);
或者像这样,因为在这个特定场景中你知道我们在谈论整数值:
$query = sprintf("SELECT * FROM foo WHERE id IN (%s, %s)",
intval($foo), intval($foo2));
mysql_query($query);
脚注:我知道当像这样使用 sprintf
时,也可以通过使用 %d
Còn hơn là %s 来处理整数值
作为格式说明符。但是,我相信只需查看一个地方(参数列表)而不是多个地方(我是否在变量上使用了 intval
?或者也许我没有,但我在格式字符串中使用 %d
所以我还可以吗?)。这听起来可能违反直觉,但它在面对修改时更加稳健。
关于带有 Or 的 PHP mysql SELECT QUERY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8182896/
Tôi đang chạy PHP trong một tệp JavaScript, như... var = '';). Tôi cần sử dụng JavaScript để quét chuỗi để tìm các ký tự phân cách PHP (mở và đóng PHP). Tôi đã biết cách rồi
Tôi muốn có thể làm điều gì đó như thế này: php --determine-oldest-supported-php-version test.php và nhận được kết quả đầu ra này: 7.2 Nghĩa là nhị phân php được kiểm tra theo thử nghiệm.
Tôi đang phát triển một trang web php lớn hiện không sử dụng bất kỳ framework nào. Câu hỏi lớn của tôi là, liệu có nên thử tích hợp dần dần khung vào ứng dụng theo thời gian, chẳng hạn như tạo các tiện ích mới và cập nhật các tiện ích cũ không? Ví dụ, tất cả các trang đều được phục vụ trực tiếp thông qua URL.
Dưới đây là mã nguồn của tôi, tôi muốn sử dụng biến $r1 nằm trong tập lệnh php ở cuối trong một tập lệnh php khác ở đầu cùng một trang. Tôi cần một giải pháp đơn giản cho vấn đề này. Tôi muốn sử dụng biến đó trong truy vấn cập nhật có trong mã. $tên)
Tôi đang tạo một trang web thực hiện nhiều chuyển hướng PHP tùy thuộc vào các tình huống khác nhau. Giống như thế này... header("Location: somesite.com/redirectedpage.php"); để bảo mật