我有这个问题:
INSERT INTO db1.outbox (DestinationNumber, TextDecoded)
SELECT User.CellPhone, '$SMSMessage' as TextDecoded
FROM db2.User
WHERE User.PurchaseDate BETWEEN 2012-01-01 AND 2012-01-31
它会在'outbox'表中插入多行。但我不知道插入了多少行。如何从该SQL语法中插入行数?感谢。
更新 由于这个命令,我得到'-1':
$insertedRows = mysql_query("SELECT ROW_COUNT()");
$rowInserted = mysql_fetch_array($insertedRows);
$rowInserted = $rowInserted[0];
echo $rowInserted;
但我看到我的桌子上插入了27行。我做错了什么?
答案 0 :(得分:10)
把它放在你最后的陈述上;
SELECT ROW_COUNT();
更新1
如何使用 mysql_affected_rows
,例如
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
/* this should return the correct numbers of deleted records */
mysql_query('you SQL QUERY HERE');
printf("Records deleted: %d\n", mysql_affected_rows());
?>
答案 1 :(得分:1)
以下是一些可能性:
»如果您有AUTO_INCREMENT
列,则可以在插入
»SELECT ROW_COUNT()
返回最后一个语句更改,删除或插入的行数,如果它是UPDATE
,DELETE
或INSERT
({{3} }})
»您可以使用mysqli_affected_rows
(因为mysql_
函数被弃用)来获取先前MySQL操作中受影响的行数(doc)
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
if (!$link) {
printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
exit();
}
/* Insert rows */
mysqli_query($link, "INSERT INTO myTable VALUES (1)");
printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));