我很好奇为什么我在之前已经完成了一百万次的事情上收到了错误,但是在某个脚本上突然出现错误'未定义变量:行'
然而,行似乎对我来说......
$sql = 'SELECT * FROM table WHERE id="1" LIMIT 1 ';
$res = mysql_query($sql);
if(mysql_num_rows($res) != FALSE) {
$row = mysql_fetch_array($res);
}
Run Code Online (Sandbox Code Playgroud)
以上是伪sql ...但我检查了sql语句,我知道它带来了一个结果.我也知道$ row存储数据,因为如果我去
echo $row[0];
Run Code Online (Sandbox Code Playgroud)
我得到了正确的数据.
所以据我所知,定义了$ row变量.但仍然 - 一个错误.我是在失去理智还是在这里失踪了?如果$ row不存在,是否只会出现此错误/通知?
对不起,伙计们发生在if语句中:
$sql = 'SELECT * FROM table WHERE uID="' . $ID . '" LIMIT 1 ';
$res = mysql_query($sql);
if(mysql_num_rows($res) != FALSE) {
$row = mysql_fetch_array($res);
$firstName = $row[0];
$lastName = $row[1];
$email = $row[2];
}
Run Code Online (Sandbox Code Playgroud)
编辑2
如果我执行print_r($ row),我会得到以下内容:
Array
(
[0] => Robert …Run Code Online (Sandbox Code Playgroud) 在过去,我会这样做:
$sql = 'SELECT * FROM customers WHERE customer_email="' . mysql_real_escape_string($_POST['customer_email']) . '" ';
$res = mysql_query($sql);
// if there are no hits...
if(mysql_num_rows($res) == FALSE) {
Run Code Online (Sandbox Code Playgroud)
今天我用预备的陈述做了同样的事情:
$stmt = $dbh->prepare("SELECT * FROM customers where customer_email = ? LIMIT 1");
if ($stmt->execute(array($_POST['customer_email']))) {
Run Code Online (Sandbox Code Playgroud)
我准备好的语句的第二行if($ stmt ...是"如果此查询得到结果"或"是否"无论结果是否执行此查询,即它是否执行没有错误").
我正在尝试解决的是准备好的语句你如何做相当于mysql_num_rows()== FALSE?
谢谢!!
我在mysql表中有很多行,日期时间的格式为:
2008-12-08 04:16:51 etc
Run Code Online (Sandbox Code Playgroud)
我想生成一个30秒到3天之间的随机时间间隔,并将它们添加到上面的时间.
a)如何在30到3天之间生成随机时间?
b)如何将此时间添加到上面的日期时间格式?
我想我需要做一个循环来取出所有信息,在php中进行数学计算,然后更新行...
有任何想法吗?
我正在尝试用PHP创建一个制表符分隔文件并遇到一些麻烦.基本上我的制表符,和换行符,即\t并\n最终被打印出来,而不是转换成他们应该是.
我的代码很简单:
$sql = 'SELECT * FROM products';
$res = mysql_query($sql);
$page_print = 'id \t title \t description \t price';
while($row = mysql_fetch_array($res)) {
$page_print .= $row['product_id'] . ' \t ' . $row['product_name'] . ' \t ' . strip_tags($row['product_content']) . ' \t ' . $row['product_price'] . '\n';
}
$page_print = sanitize_output($page_print);
$myFile = "products.txt";
$fh = fopen($myFile, 'w');
$stringData = trim($page_print);
fwrite($fh, $stringData);
fclose($fh);
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
我正在尝试从今天插入的表中提取结果。每个插入都标有时间戳。
如果我做这样的查询:
SELECT *
FROM table
WHERE added > DATE_SUB(NOW(), INTERVAL 1 DAY)
Run Code Online (Sandbox Code Playgroud)
看来我得到的东西确实落在了今天的日期,但也得到了 24 小时前的东西。也许我在看东西。
我不想看到 24 小时前的东西...
有没有更快的方法来执行这个最简单的服务器负载查询?我不认为我曾尝试过除此方法之外的任何其他方法:
$sql = 'SELECT thing FROM table WHERE id="' . $id . '" ';
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
$thing = $row[0];
Run Code Online (Sandbox Code Playgroud)
有什么方法可以改善吗?
我想制作一个php文件,我有一个变量的一部分,我正在构建.
即
$print = 'something';
$print .= include('register_form.php');
print $print;
Run Code Online (Sandbox Code Playgroud)
但这不起作用.register_form.php将不包含在$ print var中,并将在打印输出开始之前回显.
有没有办法实现这个目标?
我知道我可以进入register_form.php并使其成为像register_form()这样的函数并返回其输出,但是,由于我构造它的方式(而且我有点像newb)这会创建更多如果我只能做上述尝试,那就很头疼.
感谢您的任何指示!
我有一个我正在玩的结账,每个项目的数量输入旁边都有一些向上和向下箭头.
我有一些重复的代码,它似乎没有效率.希望你能提供帮助.
每个项目看起来像这样(请原谅我现在的非标准符合item_id属性)
<div class="qty_ctrl_wrap">
<input class="bag_qty" type="text" value="4" item_id="532" name="product_quantity">
<div class="arrows">
<div class="more"></div>
<div class="less"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是完整的jquery函数:
$('#checkout .arrows div').live('click',function(){
var item_id = $(this).parent().prev('input').attr('item_id');
var current_qty = $(this).parent().prev('input').val();
if($(this).attr('class') == 'more') {
var new_qty = parseInt(current_qty) + 1;
} else {
var new_qty = parseInt(current_qty) - 1;
}
// change the input on screen for visual reasons...
$(this).parent().prev('input').val(new_qty);
// submit the changes
$.ajax({
type: 'POST',
url: '/backend/product_purchase_items.php',
data: 'qty='+new_qty+'&item_id='+item_id,
cache: false,
success: function(data) {
$('#product_purchase_items').html(data);
}
}); …Run Code Online (Sandbox Code Playgroud) 我今天一直在对图像进行一些测试,发现我无法制作模糊的PNG图像,在我的桌面上看起来很好,在iphone上看起来不模糊而不做一些奇怪的事情.
直到我将图像的分辨率提高了两倍,然后在iphone中调整它们,使它们在屏幕上显得清晰.这是正常的做法吗?
怎么说如果你有一个你想要非模糊的背景图像?我不知道如何上传背景图片并告诉它以一半的尺寸运行......
感谢您的任何指示!
在PHP7之前,我会结合implode并array_map遍历每个值,mysql_real_escape_string为它们准备一个语句以避免sql注入.例如:
$values = implode("', '", array_map('mysql_real_escape_string', $sqlArray));
Run Code Online (Sandbox Code Playgroud)
mysql_real_escape_string现在已被mysqli :: real_escape_string取代.如何使用新方法完成上述代码,就像使用array_map中的mysqli类一样容易?