$content
是一个带有详细说明的变量'。
product_id
是一列,可能包含名为$content
products
)的子字符串
我正在尝试创建一个select语句,如果product_id
变量中的$content
为CONTAINED,则会找到一条记录。然后我想用SELECT staement中的receive_sms
字段更新另一个名为url
的表
在网站上研究我得出以下内容......但它没有工作
$mysqlic = mysqli_connect("testsms.cloudaccess.net", "username", "password", "testsms2");
$prod_res=mysqli_query($mysqlic,"SELECT url from products
WHERE %product_id% LIKE %$content%");
mysqli_query($mysqlic,"INSERT INTO recieve_sms (comments) VALUES ('$prod_res')");
任何想法?
答案 0 :(得分:0)
嗯,首先,我不明白为什么你在你的字段名称上使用通配符。您想要检查某个值是否包含在该字段的值中,请考虑更改此值:
... WHERE %product_id% LIKE %$content%);
到
... WHERE product_id LIKE '%$content%');
另外,请使用预准备语句来避免SQL注入。您正在使用支持它们的MySQLi。
修改强>
此外,mysqli_query
的返回是MySQLi资源。您必须从资源中获取结果才能访问您正在寻找的值。
答案 1 :(得分:0)
应该是:
$prod_res = mysqli_query($mysqlic, "SELECT url from products
WHERE '$content' LIKE CONCAT('%', product_id, '%')");
或:
$prod_res = mysqli_query($mysqlic, "SELECT url from products
WHERE LOCATE(product_id, '$content') != 0");
您需要将$content
放在引号中。
实际上,如果您使用准备好的查询会更好,那么'$content'
将成为占位符?
。
查询后,您需要调用mysqli_fetch_assoc()
来获取列值:
$row = mysqli_fetch_assoc($prod_res);
$url = $row['url'];